Configuration avancée

Directives d'édition des fichiers de configuration

Leprocessmining.conf est un fichier de configuration qui contient les propriétés requises pourIBMProcess Mining pour fonctionner correctement. Le fichier est distribué pour fonctionner sans aucune modification si les valeurs par défaut sont utilisées. Toutefois, lorsque vous modifiez le fichier, veillez à respecter les consignes suivantes :

  • Vous devez modifier les valeurs dont vous avez besoin (par exemple,LDAP hostname ). Vous n'avez pas besoin de supprimer les valeurs que vous n'utilisez pas.

  • Vous devez spécifier toutes les valeurs, même si elles sont vides. Sinon,IBMProcess Mining ne démarre pas.

  • Si vous apportez accidentellement une modification, cela pourrait casser le style de format YAML et l'empêcher de fonctionner correctement.

exécution en tant que service

Pour exécuter l'application en tant que service, entrez les commandes suivantes en tant qu'utilisateur root:

cp <PM_HOME>/bin/pm*.service  /etc/systemd/system/
chmod 664 /etc/systemd/system/pmweb.service
chmod 664 /etc/systemd/system/pmengine.service
chmod 664 /etc/systemd/system/pmanalytics.service
chmod 664 /etc/systemd/system/pmaccelerators.service
chmod 664 /etc/systemd/system/pmmonitoring.service
chmod 664 /etc/systemd/system/pmmonet.service
chmod 664 /etc/systemd/system/pmbrm.service

systemctl daemon-reload
systemctl enable pmengine.service
systemctl enable pmweb.service
systemctl enable pmanalytics.service 
systemctl enable pmaccelerators.service 
systemctl enable pmmonitoring.service
systemctl enable pmmonet.service
systemctl enable pmbrm.service

Vous devez modifier les fichiers *.service pour définir les configurations suivantes:

  • L'utilisateur RUNAS correct

  • Chemin PM_HOME correct

Démarrage et arrêt du service

Utilisez les commandes suivantes pour tester le service:

systemctl start pmmonet.service
systemctl start pmengine
systemctl start pmweb
systemctl start pmanalytics
systemctl start pmaccelerators
systemctl start pmmonitoring
systemctl start pmbrm
systemctl stop pmmonet.service
systemctl stop pmengine
systemctl stop pmweb
systemctl stop pmanalytics
systemctl stop pmaccelerators
systemctl stop pmmonitoring
systemctl stop pmbrm
Important : si SELinux est activé, vous devez effectuer des tâches supplémentaires liées à SELinux.

E-mail

Le service de messagerie électronique est utilisé pour envoyer un message de réinitialisation de mot de passe à l'utilisateur.

Pour activer le service de messagerie, éditez la section email de <PM_HOME>/etc/processmining.conf comme suit:

email: {
  from: "sender@mycompany.com" #optional, if empty user field will be used
  user:"theaccount@mycompany.com",
  password:"2bTPnxKK6rsf3z6VNpcEqA==",
  smtp: {
          starttls: {
                  enable: true,
                  required: true
          },
    auth: true,
          host: "smtp.mycompany.com",
    port: "465",
    socketFactory: {
      port: "465" ,
      fallback: false
                }       
        },
  sendgrid : {
                apikey: ""
                #host: "" #optional, if empty default value is https://api.sendgrid.com/v3/mail/send
        }       
},

Utilisation de SendGrid

Si au lieu de SMTP, il est préférable d'adopter SendGrid comme programme de messagerie, les configurations suivantes sont requises:

  • Indiquez la zone email.from (obligatoire).
  • Spécifiez sendgrid.sendgrid.apikey avec votre clé d'API de produit (obligatoire).
  • Définissez votre SengGrid host (facultatif).
  • Remplacez le profil smtp par sendgrid dans la section de profil comme dans l'exemple.
profiles: [
  ...
  ...
  "sendgrid",                           # smtp | sendgrid
  ...
  ...
]
Note : Vous devez stocker le mot de passe dans un format crypté avant de l'enregistrer dans le fichier. Pour plus de détails, voir la section "Chiffrement des mots de passe".

Chiffrement des données au repos

Remarque : cette section n'est valable que pour les projets IBM Process Mining Legacy.

Système de fichiers

Vous pouvez chiffrer les fichiers de données (CSV) qui ont été téléchargés dans IBM Process Mining avec AWS Key Management Service (KMS).

Pour chiffrer les fichiers de données, vous devez éditer la section encryption dans: <PM_HOME>/etc/processmining.conf comme suit:

encryption: {
  aws: {
    enabled: true,
    # test
    region: "eu-west-1",
    accessKeyId: "<YOUR AWS ACCESS KEY>",
    secretKey: "<YOUR AWS SECRET KEY>",
    # arn of the key
    cmkId: "arn:aws:kms:eu-west-1:992429998518:key/30be1e99-e584-4de5-a2bd-8c9927990f73"  
  }
},

Ensuite, éditez la section engine.defaults.project.encryptSourceData et définissez la valeur sur true.

Attention : Le KMS AWS et le serveur doivent se trouver dans la même région AWS.
Note : La configuration précédente doit être fournie lors de la première installation. Si vous activez le chiffrement CSV et que certains projets sont déjà créés, vous devez effectuer une nouvelle tentative de téléchargement de ces fichiers CSV.

Paramètres de la mémoire JVM

Vous devez définir les paramètres de mémoire du segment de mémoire Java en fonction de la mémoire RAM disponible sur le serveur.

Editez les propriétés suivantes dans <PM_HOME>/bin/environment.conf pour définir ces configurations:

  • "JVM_MAX_HEAP_ENGINE"

La valeur suggérée est 16 g sur un serveur avec 32 Go de mémoire RAM disponible.

La valeur recommandée est 24 g sur un serveur disposant de plus de 64 Go de mémoire RAM.

  • "JVM_MAX_DIRECT_MEMORY_ENGINE"

La valeur par défaut de 2g est généralement adéquate pour optimiser les performances.

  • "JVM_MAX_HEAP"

La valeur par défaut de 2g est généralement adéquate pour optimiser les performances.

  • "JVM_MAX_DIRECT_MEMORY"

La valeur par défaut de 1g est généralement adéquate pour optimiser les performances.

Après avoir modifié les paramètres JVM, vous devez redémarrer le serveur pour que le changement soit effectif.

Paramètres du système d'exploitation

Lorsque vous créez de nombreux projets que vous prévoyez d'utiliser régulièrement, appliquez les paramètres suivants au plus grand nombre de fichiers possible :

/etc/sysctl.conf
fs.file-max = 2097152
sudo sysctl -p

sudo vi /etc/security/limits.conf
* soft nofile 500000
ulimit -Sn

Activation de la sécurité avancée sous Nginx

Pour un environnement de production, il est conseillé d'activer les configurations de sécurité avancées Nginx .

Atténêter l'attaque lente après l'attaque

Cette configuration est utile pour atténuer les attaques DDOS de post-attaques lentes.

Pour cela, éditez le fichier /etc/nginx/conf.d/processmining.conf et décommentez les sections relatives à l'attaque DDOS slow-post mitigate.

client_body_timeout 5s;
client_header_timeout 5s;

location /signin 
{
        limit_req zone=one;
        limit_conn addr 10;
        proxy_pass              http://localhost:8080;
  proxy_set_header        X-Real-IP $remote_addr;
  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header        Host $http_host;
}

Et

limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
limit_conn_zone $binary_remote_addr zone=addr:10m;

Empêchement de l'injection de l'en-tête d'hôte

Pour cela, éditez le fichier /etc/nginx/conf.d/processmining.conf et

  • Remplacez server_name _; par server_name <CURRENT PUBLIC HOSTNAME>;
    • Autrement dit, server_name pm.mycompany.com;
  • Supprimez la mise en commentaire de la section Prevent Host Header Injection. Cela permet de se connecter à une demande de fichier dédiée avec un nom d'hôte non valide comme cible.
    • Section de mise à jour relative aux certificats

Cookies sécurisés

Pour des raisons de sécurité, il est recommandé d'utiliser des cookies sécurisés. Si l'option est activée, l'application web ne fonctionne qu'avec HTTPS et non sur le port 8080 .

  1. Editez la section profile dans <PM_HOME>/etc/processmining.conf.
  2. Supprimez le profil de développement .

Intégration sécurisée à l'application Web Task Mining

Dans un environnement de production, il est recommandé de définir correctement le nom d'hôte de l'application Web Task Mining .

Editez la section sso.redirect dans <PM_HOME>/etc/processmining.conf comme suit:

sso: {
  redirect: {
        # This must be filled, for security reason, in production environment with the taskmining hostname. I.e. tm.mycompany.com
    allow: ""
  },

Génération d'une paire de clés pour la configuration de l'application de processus

Une paire de clés contient une clé publique et une clé privée qui permettent aux services Process App de communiquer avec IBM Process Mining. Vous pouvez générer la paire de clés pour Process App à l'aide du script generateKeyPair.sh . Pour plus d'informations sur l'utilisation du script generateKeyPair.sh pour générer une paire de clés, voir Création d'une clé privée et d'une clé publique pour Process App. Toutefois, si vous devez supprimer les paires de clés existantes et les remplacer manuellement par une nouvelle paire de clés, procédez comme suit:

  • Accéder à /opt/processmining/etc

    cd /opt/processmining/etc
    
  • Supprimez les fichiers de paire de clés existants, acf-ext-publicKey.der, acf-core-privateKey.der et keypair-callsToAcf.pem

    rm -i acf-ext-publicKey.der
    rm -i acf-core-privateKey.der
    rm -i keypair-callsToAcf.pem
    
  • Générer une paire de clés RSA au format .pem

    openssl genrsa -out keypair-callsToAcf.pem 2048
    
  • Exécutez la commande suivante pour exporter la clé publique au format .der vers le répertoire <PM_HOME>/etc après avoir généré les paires de clés:

    openssl rsa -in keypair-callsToAcf.pem -outform DER -pubout -out acf-ext-publicKey.der
    
  • Exécutez la commande suivante pour exporter la clé privée au format .der vers le répertoire {PM_HOME}/etc après avoir généré les paires de clés:

     openssl pkcs8 -topk8 -nocrypt -in keypair-callsToAcf.pem -outform DER -out acf-core-privateKey.der
    
Conseil : Si l'application n'est pas installée dans le répertoire /opt/processmining , vous devez définir la propriété publicKeyPath dans le fichier <PM_HOME> /etc/processmining.conf à la valeur suivante : filesystem.home: "<PM_HOME>/etc/acf-ext-publicKey.der"

Génération des clés de signature JWT pour l'application de processus

Vous pouvez générer des clés de signature JWT pour établir et sécuriser la communication entre les services d'application de processus et les applications. Par défaut, une clé de signature pour IBM Process Mining est disponible dans les paramètres de base. Si vous souhaitez générer de nouvelles clés JWT, utilisez le portail de génération de clés suivant : https://asecuritysite.com/encryption/keygen.

Pour générer une clé de signature JWT dans l'outil de génération de clés, procédez comme suit:

  • Dans la zone Phrase passe , entrez une phrase passe de votre choix.
  • Sélectionnez l'algorithme de chiffrement comme illustré ci-dessous pour générer et chiffrer la clé de signature pour IBM Process Mining:

Asecuritysite.com

  • Copiez les clés de signature JWT générées aux emplacements suivants:
    • Première clé générée pour IBM Process Mining:
    1. Copiez dans la zone issuer.jwt.key.ProcessMiningService du fichier <PM_HOME>/etc/accelerator-core.properties

    2. Copiez dans la zone issuer.jwt.key.ProcessMiningService de la section d'accélérateur du fichier <PM_HOME>/etc/processmining.conf

Configuration des paramètres pour la génération de bot RPA

Vous pouvez utiliser IBM Process Mining pour générer des bots RPA . Pour ce faire, il est obligatoire que l'environnement Task Mining soit lié à l'environnement Process Mining et que les fournisseurs actifs soient définis dans le fichier de configuration.

Pour lier l'application Task Mining à l'application Process Mining , vous devez mettre à jour le fichier etc/processmining.conf avec la configuration suivante:

taskmining : {
url : "https://pm-qa-candidate-task-miner.fyre.ibm.com"
}
Note : Vous devez mettre à jour la valeur de URL avec l'application URL to Task Mining dans votre appareil.

Vous devez mentionner l'ensemble autorisé de fournisseurs actifs dans le fichier etc/processmining.conf . Pour définir les fournisseurs actifs d'une installation, mettez à jour le fichier etc/processmining.conf avec la configuration suivante:

rpa : {
activeVendors : "IBM_RPA,UI_PATH"
}