20.7 Configuration de l'authentification mutuelle avec le moteur Identity Manager

Vous pouvez configurer l'authentification mutuelle pour sécuriser la communication entre le chargeur distant et le moteur Identity Manager. L'authentification mutuelle utilise des certificats pour la reconnaissance mutuelle, au lieu de mots de passe. Le chargeur distant et le moteur Identity Manager s'authentifient mutuellement en échangeant et en validant le certificat de clé publique ou le certificat numérique émis par les autorités de certification approuvées ou les certificats auto-signés. Si l'authentification mutuelle réussit, le chargeur distant s'authentifie auprès du moteur. Le trafic de synchronisation s'effectue une fois que le chargeur distant et le moteur Identity Manager ont établi avec certitude qu'ils communiquent avec une entité autorisée.

Pour configurer l'authentification mutuelle, effectuez les opérations suivantes :

20.7.1 Exportation de certificats pour le moteur Identity Manager et le chargeur distant

Pour que l'authentification mutuelle fonctionne correctement, vous avez besoin d'un certificat de serveur pour le moteur et d'un certificat client pour le chargeur distant. Vous pouvez exporter les certificats à partir d'eDirectory ou les importer depuis un fournisseur tiers. Dans la plupart des cas, vous exporterez simplement un certificat de serveur à partir d'eDirectory. Cela dit, dans certains cas, vous voudrez peut-être exporter un certificat client tiers pour le chargeur distant.

Exportation d'un certificat à partir d'eDirectory

Un objet Certificat présent dans le coffre-fort d'identité est appelé KMO (Key Material Object - objet Matériel clé). Cet objet stocke, de façon sécurisée, les données de certificat, notamment la clé publique et la clé privée associées au certificat utilisé pour les connexions SSL. Pour l'authentification mutuelle, vous avez besoin de deux KMO : un pour le moteur et un pour le chargeur distant.

Vous pouvez exporter un KMO existant ou en créer un nouveau, puis l'exporter. La procédure de création d'un KMO côté client et côté serveur est différente.

Création de KMO

Pour créer un KMO côté serveur :

  1. Connectez-vous à NetIQ iManager.

  2. Dans le volet gauche, cliquez sur Serveur de certificats NetIQ, puis sélectionnez certificat de serveur.

  3. Sélectionnez le serveur qui doit posséder le certificat que vous avez créé.

  4. Spécifiez un surnom pour le certificat. Par exemple, serverkmo.

  5. Sélectionnez Standard comme méthode de création du certificat, puis cliquez sur Suivant.

  6. Passez en revue le résumé, cliquez sur Terminer, puis sur Fermer.

Pour créer un KMO côté client :

  1. Connectez-vous à NetIQ iManager.

  2. Dans le volet gauche, cliquez sur Serveur de certificats NetIQ, puis sélectionnez certificat de serveur.

  3. Sélectionnez le serveur qui doit posséder le certificat que vous avez créé.

  4. Spécifiez un surnom pour le certificat. Par exemple : clientkmo

  5. Sélectionnez Personnalisée comme méthode de création du certificat, puis cliquez sur Suivant.

  6. Laissez la valeur par défaut pour l'autorité de certification organisationnelle, puis cliquez sur Suivant.

  7. Désélectionnez Activer l'utilisation de clé étendue, puis cliquez sur Suivant.

  8. Acceptez les autres paramètres par défaut du certificat.

  9. Passez en revue le résumé, cliquez sur Terminer, puis sur Fermer.

Exportation de KMO

À partir d'eDirectory, exportez les KMO que le moteur et le chargeur distant vont utiliser pour s'authentifier mutuellement.

Pour exporter le KMO pour le moteur Identity Manager, exécutez l'utilitaire de ligne de commande DirXML (dxcmd) :

dxcmd -user <admin DN> -password <password of admin> -exportcerts <kmoname> <server|client> <java|native|dotnet> <output dir>

où

  • user correspond au nom d'un utilisateur possédant des droits d'administration sur le pilote.

  • password correspond au mot de passe de l'utilisateur possédant des droits d'administration sur le pilote.

  • exportcerts exporte les certificats et les clés privées/publiques à partir d'eDirectory. Vous devez indiquer si vous exportez un certificat de serveur ou client, et spécifier le type de pilote qui utilisera le certificat ainsi qu'un dossier de destination dans lequel la commande stockera ces informations.

Par exemple : dxcmd -user admin.sa.system -password novell -exportcerts serverkmo server java '/home/certs'

Cette commande génère le fichier serverkmo_server.ks dans le répertoire /home/certs/. Le mot de passe par défaut du fichier Keystore est dirxml.

Lorsque vous exécutez la commande dxcmd afin d'exporter le KMO pour le chargeur distant, tenez compte des aspects suivants :

  • L'utilitaire dxcmd s'exécute en mode LDAP. Lorsque vous l'utilisez pour la première fois, il vous demande d'indiquer si vous approuvez le certificat provenant d'eDirectory. En fonction de votre environnement, vous pouvez choisir d'approuver le certificat pour la session en cours uniquement ou pour les sessions en cours et à venir, d'approuver tous les certificats ou de ne pas approuver le certificat.

  • Si le chargeur distant s'exécute sur le serveur Identity Manager, exécutez la commande au format LDAP ou à points. Si le chargeur distant est installé sur un serveur distinct, exécutez la commande uniquement au format LDAP.

  • Spécifiez le paramètre -host dans la commande pour résoudre l'adresse IP ou le nom d'hôte du serveur, afin de pouvoir s'authentifier auprès du serveur Identity Manager.

Exécutez la commande à l'aide de la syntaxe suivante :

dxcmd -dnform ldap -host <adresse_IP_hôte> -user <DN_admin> -password <mot_de_passe_admin> -exportcerts <nom_kmo> <client> <java|native|dotnet> <rép_sortie>

Tableau 20-1 Exemples de différents types de pilotes

Types de pilotes

Commande

Sortie

Pilote Java

dxcmd -dnform ldap -host 194.99.90.218 -user cn=admin,ou=sa,o=system -password novell -exportcerts clientkmo client java '/home/certs'

Fichier clientkmo_client.ks dans le répertoire/home/certs/

Le mot de passe par défaut du fichier Keystore est dirxml.

Pilote natif

dxcmd -dnform ldap -host 194.99.90.218 -user cn=admin,ou=sa,o=system -password novell -exportcerts clientkmo client native 'C:\certs'

Fichiers clientkmo_clientcert.pem, clientkmo_clientkey.pem et trustedcert.b64 dans le répertoire C:\certs

Pilote .NET

dxcmd -dnform ldap -host 194.99.90.218 -user cn=admin,ou=sa,o=system -password novell -exportcerts clientkmo client dotnet 'C:\certs'

Fichiers clientkmo_clientcert.pfx et trustedcert.b64 dans le répertoire C:\certs

Exportation d'un certificat tiers pour le chargeur distant

Pour utiliser des certificats tiers avec le chargeur distant, vous devez exporter un certificat dans le fichier .pfx et un fichier de racine approuvée au format Base64, puis convertir le certificat .pfx au format utilisé par le pilote. Par exemple, un pilote natif requiert la clé privée et la clé de certificat au format .pem, tandis qu'un pilote Java nécessite que le fichier Keystore soit au format .jks. Le pilote .NET utilise, quant à lui, le fichier au format .pfx. Vous ne devez donc pas convertir le fichier pour un pilote .NET.

Pilote natif

Procédez comme suit :

  1. Récupérez la clé privée au format .pem à partir du fichier .pfx.

    Entrez une commande du type openssl pkcs12 -in servercert.pfx -nocerts -out serverkey.pem –nodes

  2. Récupérez la clé de certificat au format .pem à partir du fichier .pfx.

    Entrez une commande du type openssl pkcs12 -in servercert.pfx -nokeys -out servercert.pem

Pilote Java

Créez un fichier Keystore Java à partir du fichier .pfx. Entrez une commande du type keytool -importkeystore -srckeystore servercert.pfx -srcstoretype pkcs12 -destkeystore servercert.jks -deststoretype JKS.

Pour terminer, spécifiez les informations correspondant au type de pilote dans le fichier de configuration du chargeur distant. Pour plus d'informations, reportez-vous à la section Activation d'un pilote pour l'authentification mutuelle.

20.7.2 Activation d'un pilote pour l'authentification mutuelle

Pour activer une communication de pilote pour l'authentification mutuelle, vous devez effectuer les opérations suivantes :

Configuration d'un pilote à l'aide d'un KMO ou d'un fichier Keystore

Vous pouvez configurer le pilote à l'aide d'un KMO ou d'un fichier Keystore dans Designer ou iManager.

Dans Designer, vous pouvez configurer le pilote lors de sa création initiale ou après l'avoir créé.

Pour configurer un pilote dans Designer :

  1. Ouvrez votre projet dans Designer.

  2. Dans la palette de la vue Modélisateur, sélectionnez le pilote que vous souhaitez créer.

  3. Faites glisser l'icône du pilote dans la vue Modélisateur.

  4. Suivez les étapes de l'assistant d'installation.

  5. Dans la fenêtre relative au chargeur distant, sélectionnez oui.

    1. Nom d'hôte : spécifiez le nom d'hôte ou l'adresse IP du serveur sur lequel s'exécute le service de chargeur distant du pilote. Par exemple, entrez hostname=192.168.0.1. Si vous ne spécifiez aucune valeur pour ce paramètre, il est défini par défaut sur localhost.

    2. Port : spécifiez le numéro du port sur lequel le chargeur distant est installé et s'exécute pour ce pilote. Le numéro de port par défaut est 8090.

    3. KMO : spécifiez le nom de clé ou le KMO contenant les clés et le certificat utilisés par le chargeur distant pour une connexion SSL. Par exemple, entrez kmo=serverkmo. Si vous configurez l'authentification mutuelle à l'aide du KMO, vous devez spécifier une valeur pour ce paramètre. Vous devez également spécifier une valeur pour le paramètre Root File (fichier racine) dans la section Autres paramètres.

    4. Autres paramètres : définissez les paramètres du chargeur distant que vous souhaitez utiliser. Ces paramètres incluent les informations relatives à la communication d'authentification mutuelle. Tous les paramètres définis doivent être spécifiés au format de paire clé-valeur suivant : paraName1=paraValue1 paraName2=paraValue2

      Par exemple, pour keystore, utilisez la syntaxe suivante :

      UseMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' keypass='dirxml' key='serverkmo'

      Par exemple, pour kmo, utilisez la syntaxe suivante :

      useMutualAuth=true rootFile='/home/cacert.b64'
    5. Définir le mot de passe : permet de définir ou de modifier le mot de passe d'une application.

    6. Supprimer le mot de passe : permet de supprimer le mot de passe de l'application.

  6. Cliquez sur Suivant.

  7. Suivez les autres instructions de l'assistant jusqu'à ce que l'installation du pilote soit terminée.

  8. Passez en revue le résumé des opérations qui seront effectuées pour créer le pilote, puis cliquez sur Terminer.

Vous pouvez également configurer le pilote après sa création, en procédant comme suit :

  1. Dans la vue Mode plan de Designer, cliquez sur le pilote.

  2. Sélectionnez Propriétés.

  3. Dans le volet de navigation, sélectionnez Configuration du pilote.

  4. Sélectionnez Authentification.

  5. Dans la section Authentification du chargeur distant, spécifiez les informations requises pour configurer l'authentification mutuelle entre le chargeur distant et le moteur Identity Manager.

    Utilisez la syntaxe suivante pour kmo :

    hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true kmo=certificatename rootFile=<absolute path to the file>

    Par exemple :

    hostname=192.168.0.1 port=8090 useMutualAuth=true kmo=serverkmo rootFile='/home/cacert.b64'

    Utilisez la syntaxe suivante pour keystore :

    hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true keystore=<absolute path to the keystore file> storepass=<keystore password> key=<alias name> keypass= <password for the key>

    Par exemple :

    hostname=192.99.90.17 port=8097 useMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' key='serverkmo' keypass='dirxml' 

Pour modifier la configuration dans iManager :

  1. Lancez iManager.

  2. Dans Présentation, sélectionnez l'objet Pilote Identity Manager.

  3. Dans les propriétés de l'objet Pilote, procédez comme suit :

    1. Dans le champ Module pilote, sélectionnez Se connecter au chargeur distant.

    2. Dans le champ Mot de passe de l'objet Pilote, spécifiez le mot de passe utilisé par le chargeur distant pour s'authentifier auprès du moteur.

      Ce mot de passe doit correspondre à celui de l'objet Pilote défini dans le chargeur distant.

    3. Dans le champ Paramètres de connexion au chargeur distant, spécifiez les informations requises pour la connexion au chargeur distant.

      Utilisez la syntaxe suivante pour kmo :

      hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true kmo=certificatename rootFile=<absolute path to the file>

      Par exemple :

      hostname=192.168.0.1 port=8090 useMutualAuth=true kmo=serverkmo rootFile='/home/cacert.b64'

      Utilisez la syntaxe suivante pour keystore :

      hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true keystore=<absolute path to the keystore file> storepass=<keystore password> key=<alias name> keypass= <password for the key>

      Par exemple :

      hostname=192.99.90.17 port=8097 useMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' key='serverkmo' keypass='dirxml' 
    4. (Facultatif) Dans le champ Mot de passe du chargeur distant, spécifiez le mot de passe que le moteur Identity Manager (ou le module d'interface du chargeur distant) utilise pour s'authentifier auprès du chargeur distant.

    5. Cliquez sur Appliquer, puis sur OK.

Configuration du chargeur distant pour les instances de pilote

Vous devez configurer l'instance de pilote dans le fichier de configuration du chargeur distant. Veillez à spécifier le chemin d'accès absolu au répertoire contenant le fichier de clé, le fichier de certificat et le fichier de racine inclus dans le fichier de configuration du chargeur distant pour un pilote.

Configuration sous UNIX ou Linux

Modifiez le fichier de configuration du chargeur distant pour un pilote afin d'inclure le contenu permettant d'activer l'authentification mutuelle. Le fichier se trouve dans le répertoire/opt/novell/dirxml/doc.

Pour modifier la configuration :

  1. Connectez-vous au serveur sur lequel vous avez installé le pilote et le chargeur distant.

  2. Arrêtez le chargeur distant.

    Par exemple, entrez la commande suivante :

    rdxml -config /home/drivershim.conf -u
  3. Dans un éditeur de texte, ouvrez le fichier de configuration du chargeur distant pour le pilote.

  4. Ajoutez au fichier le contenu nécessaire pour activer l'authentification mutuelle.

    • Par exemple, pour un pilote Java, ajoutez cette entrée :

      -connection "port=8090 useMutualAuth=true keystore='/home/certs/clientkmo_client.ks' storepass='dirxml' key='clientkmo' keypass='dirxml'" 
    • Par exemple, pour un pilote natif, ajoutez cette entrée :

      -connection "useMutualAuth=true port=8090 rootfile='/home/certs/trustedcert.b64' certfile='/home/certs/clientkmo_clientcert.pem' keyfile='/home/certs/clientkmo_clientkey.pem' keypass='dirxml' certform=PEM keyform=PEM" 
  5. Enregistrez et fermez le fichier.

  6. Redémarrez le pilote.

Configuration sous Windows

  1. Dans la console du chargeur distant, sélectionnez l'instance de pilote dans la colonne Description.

  2. Cliquez sur Arrêter.

  3. Entrez le mot de passe du chargeur distant, puis cliquez sur OK.

  4. Cliquez sur Éditer.

  5. Pour modifier les informations de configuration de manière à activer l'authentification mutuelle, procédez comme suit :

    1. Sélectionnez Authentification mutuelle.

    2. Pour un pilote natif, spécifiez le chemin d'accès au fichier de clé contenant le certificat utilisé pour l'authentification. Le fichier de clé doit être au format Base 64.

      Fichier de clés

      Spécifie le chemin d'accès au fichier contenant la clé utilisée pour l'authentification. Le fichier de clé doit être au format Base 64. Par exemple, le fichier clientkmo_clientkey.pem créé par dxcmd dans le répertoire C:\certs\ lors de l'étape Exportation d'un certificat à partir d'eDirectory.

      Mot de passe de la clé

      Spécifie le mot de passe de la clé privée utilisée pour l'authentification.

      Fichier de certificat

      Spécifie le fichier dans lequel les certificats sont stockés. Le fichier de certificat doit être au format Base 64. Par exemple, le fichier clientkmo_clientcert.pem créé par dxcmd dans le répertoire C:\certs\ lors de l'étape Exportation d'un certificat à partir d'eDirectory.

      Fichier de racine approuvée

      Spécifie le nom du fichier qui contient le certificat de racine approuvée de l'émetteur du certificat utilisé par le module d'interface distant. Le fichier de racine approuvée doit être au format Base 64. Par exemple, les fichiers trustedcert.b64 créés par dxcmd dans le répertoire C:\certs\ lors de l'étape Exportation d'un certificat à partir d'eDirectory.

    3. Pour un pilote Java, spécifiez le chemin d'accès au fichier Keystore qui contient le certificat. Le fichier keystore doit contenir au moins une paire de clés publique/privée.

      Fichier Keystore

      Indique le chemin d'accès au fichier keystore Java que vous souhaitez utiliser pour l'authentification. Le fichier Keystore contient les clés de chiffrement et les certificats. Le fichier keystore doit contenir au moins une paire de clés publique/privée. Par exemple, le fichier clientkmo_client.ks créé par dxcmd dans le répertoire C:\certs\ comme indiqué à la section Exportation d'un certificat à partir d'eDirectory.

      Alias de la clé

      Spécifie le nom de la paire de clés publique/privée dans le fichier Keystore que vous souhaitez utiliser pour la génération de la clé symétrique. Par exemple : clientkmo.

      Mot de passe Keystore

      Spécifie le mot de passe utilisé pour charger le fichier keystore

      Mot de passe de la clé privée

      Spécifie le mot de passe de la clé privée stockée dans le fichier Keystore. Identity Manager utilise cette clé pour chiffrer les communications SSL.

    4. Pour un pilote .NET, spécifiez le chemin d'accès au fichier de clé contenant le certificat utilisé pour l'authentification.

      Fichier de clés

      Spécifie le chemin d'accès au fichier contenant la clé utilisée pour l'authentification. Par exemple, le fichier clientkmo_clientcert.pfx créé par dxcmd dans le répertoire C:\certs\ lors de l'étape Exportation d'un certificat à partir d'eDirectory.

      Mot de passe de la clé

      Spécifie le mot de passe de la clé privée utilisée pour l'authentification.

      Fichier de racine approuvée

      Spécifie le nom du fichier qui contient le certificat de racine approuvée de l'émetteur du certificat utilisé par le module d'interface distant. Le fichier de racine approuvée doit être au format Base 64. Par exemple, le fichier trustedcert.b64 créé par dxcmd dans le répertoire C:\certs\ lors de l'étape Exportation d'un certificat à partir d'eDirectory.

    5. Cliquez sur OK.

  6. Cliquez sur OK.