Identity Manager peut utiliser Java Message Service (JMS) pour recevoir les notifications de changement de mot de passe de la servlet PasswordSync. En plus de garantir la livraison, JMS est en mesure de délivrer les messages à plusieurs systèmes.
Pour plus d'informations sur cet adaptateur, voir Sun Identity Manager 8.1 Resources Reference.
Cette section précise, en utilisant un exemple de scénario, les instructions à suivre pour configurer PasswordSync avec un serveur JMS Sun.
Ces informations sont organisées comme suit :
Un cas d'utilisation typique (simple) de la configuration de PasswordSync avec un serveur JMS est celui dans lequel les utilisateurs sont autorisés à changer leurs mots de passe sous Windows et où Identity Manager prélève les nouveaux mots de passe et met à jour les comptes utilisateur avec les nouveaux mots de passe sur un serveur Sun Directory.
L'environnement suivant a été configuré pour ce scénario :
Windows Server 2003 Enterprise Edition– Active Directory ;
Sun JavaTM System Identity Manager 6.0 2005Q4M3 ;
MySQL exécuté sous SUSE Linux 10.0 ;
Tomcat 5.0.28 exécuté sous SUSE Linux 10.0 ;
Sun Java System Message Queue 3.6 SP3 2005Q4 exécuté sous SUSE Linux 10.0 ;
Sun Java System Directory Server 5.2 SP4 exécuté sous SUSE Linux 10.0 ;
Java 1.5 (Java 5.0).
Les fichiers suivants ont été copiés du répertoire common/lib de Tomcat pour activer JMS et JNDI :
jms.jar (de la file d'attente de messages Sun),
fscontext.jar (de la file d'attente de messages Sun),
imq.jar (de la file d'attente de messages Sun),
jndi.jar (du SDK Java).
Cette section contient les instructions à suivre pour créer et stocker les objets administrés suivants, indispensables pour que le scénario d'exemple fonctionne correctement :
les objets Fabrique de connexion,
les objets Destination.
Vous pouvez stocker les objets administrés dans un annuaire LDAP ou dans un fichier. Si vous utilisez un fichier, toutes les instances de ce fichier doivent être identiques.
Pour les instructions, voir
Les instructions de cette section supposent que vous avez installé la file d'attente de messages Sun Java System Message Queue (les outils nécessaires figurent dans le répertoire bin/ de votre installation de Message Queue).
Vous pouvez utiliser l'interface graphique administrative de Message Queue administrative imqadmin ) ou l'outil de ligne de commande imqobjmgr) pour créer ces objets administrés. Les instructions suivantes utilisent l'outil de ligne de commande.
PasswordSync et le Listener JMS peuvent être configurés pour utiliser les objets administrés stockés dans un annuaire LDAP. La Figure 11–14 illustre le processus. La servlet PasswordSync et le listener JMS doivent tout deux récupérer les paramètres de fabrique de connexion et de destination de l'annuaire LDAP pour envoyer et recevoir des messages.
Cette section explique l'utilisation de l'outil de ligne de commande de Message Queue (imqobjmgr) pour stocker les objets administrés dans un annuaire LDAP.
Ouvrez l'outil de ligne de commande de Message Queue (imqobjmgr) et saisissez les commandes de Stockage des objets Fabrique de connexion pour stocker les objets Fabrique de connexion.
#> ./imqobjmgr add -l "cn=mytestFactory" -j "java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory" -j "java.naming.provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com" -j "java.naming.security.principal=cn=directory manager" -j "java.naming.security.credentials=password" -j "java.naming.security.authentication=simple" -t qf -o "imqAddressList=mq://gwenig.coopsrc.com:7676/jms" Adding a Queue Connection Factory object with the following attributes: imqAckOnAcknowledge [Message Service Acknowledgement of Client Acknowledgements] ... imqSetJMSXUserID [Enable JMSXUserID Message Property] false Using the following lookup name: cn=mytestFactory The object’s read-only state: false To the object store specified by: java.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory java.naming.provider.url ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com java.naming.security.authentication simple java.naming.security.credentials netscape java.naming.security.principal cn=directory manager Object successfully added. |
Dans les Stockage des objets Fabrique de connexion imqAddressList définit le nom d'hôte du serveur/courtier JMS (gwenig.coopsrc.com ), le port (7676) et la méthode d'accès (jms).
Dans l'outil de ligne de commande de Message Queue (imqobjmgr), saisissez les commandes de Stockage des objets Destination pour stocker les objets Destination.
#> ./imqobjmgr add -l "cn=mytestDestination" -j "java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory" -j "java.naming.provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com" -j "java.naming.security.principal=cn=directory manager" -j "java.naming.security.credentials=password" -j "java.naming.security.authentication=simple" -t q -o "imqDestinationName=mytestDestination" Adding a Queue object with the following attributes: imqDestinationDescription [Destination Description] A Description for the Destination Object imqDestinationName [Destination Name] mytestDestination Using the following lookup name: cn=mytestDestination The object’s read-only state: false To the object store specified by: java.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory java.naming.provider.url ldap://gwenig.coopsrc.com:389/ ou=sunmq,dc=coopsrc,dc=com java.naming.security.authentication simple java.naming.security.credentials netscape java.naming.security.principal cn=directory manager Object successfully added. |
Vous pouvez contrôler l'objet nouvellement créé avec une ldapsearch ou un navigateur LDAP.
La section consacrée au stockage des objets administrés sur un serveur LDAP est terminée. Ignorez la section suivante, qui explique comment stocker les objets administrés dans un fichier et allez directement à la section consacrée à la Configuration de l'adaptateur Listener JMS pour ce scénario.
PasswordSync et le Listener JMS peuvent être configurés pour utiliser les objets administrés stockés dans un fichier. Si vous ne stockez pas les objets administrés sur un serveur LDAP (Stockage des objets administrés dans un annuaire LDAP), suivez les instructions de cette section.
Ouvrez l'outil de ligne de commande de Message Queue (imqobjmgr) et saisissez les commandes de Stockage des objets Fabrique de connexion pour stocker les objets Fabrique de connexion et indiquer un nom de recherche.
#> ./imqobjmgr add -l "mytestFactory" -j "java.naming.factory.initial= com.sun.jndi.fscontext.RefFSContextFactory" -j "java.naming.provider.url=file:///home/gael/tmp" -t qf -o "imqAddressList=mq://gwenig.coopsrc.com:7676/jms" Adding a Queue Connection Factory object with the following attributes: imqAckOnAcknowledge [Message Service Acknowledgement of Client Acknowledgements] ... imqSetJMSXUserID [Enable JMSXUserID Message Property] false Using the following lookup name: mytestFactory The object’s read-only state: false To the object store specified by: java.naming.factory.initial com.sun.jndi.fscontext.RefFSContextFactory java.naming.provider.url file:///home/gael/tmp Object successfully added. To specify a destination: #> ./imqobjmgr add -l "mytestQueue" -j "java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory" -j "java.naming.provider.url=file:///home/gael/tmp" -t q -o "imqDestinationName=myTestQueue" Adding a Queue object with the following attributes: imqDestinationDescription [Destination Description] A Description for the Destination Object imqDestinationName [Destination Name] myTestQueue Using the following lookup name: mytestQueue The object’s read-only state: false To the object store specified by: java.naming.factory.initial com.sun.jndi.fscontext.RefFSContextFactory java.naming.provider.url file:///home/gael/tmp Object successfully added. |
Par défaut, le courtier Sun Message Queue permet de créer automatiquement la destination de la file d'attente (voir config.properties, où la valeur par défaut de imq.autocreate.queue est true).
Si la destination de la file d'attente n'est pas créée automatiquement, vous devez créer l'objet Destination sur le courtier en utilisant la commande indiquée dans Création de la destination sur le courtier (où myTestQueue est la destination).
name (Queue name): #> cd /opt/sun/mq/bin #>./imqcmd create dst -t q -n mytestQueue Username: <admin> Password: <admin> Creating a destination with the following attributes: Destination Name mytestQueue Destination Type Queue On the broker specified by: ------------------------- Host Primary Port ------------------------- localhost 7676 Successfully created the destination. |
Vous pouvez stocker les objets administrés dans un annuaire ou dans un fichier :
Dans un annuaire : utiliser un annuaire permet de stocker les objets Fabrique de connexion et Destination de manière centralisée.
Quand vous utilisez un annuaire, ces objets administrés sont stockés sous la forme d'entrées d'annuaire.
Si la servlet PasswordSync d'Identity Manager et le serveur d'Identity Manager ne sont pas la même machine, chacune des machines doit pouvoir accéder au fichier .bindings. Vous pouvez répéter deux fois (une par machine) la création des objets administrés ou copier le fichier .bindings dans l'emplacement approprié sur chaque machine.
Dans un fichier : si la servlet PasswordSync d'Identity Manager et le serveur d'Identity Manager sont exécutés sur le même serveur (ou si vous n'avez pas d'annuaire disponible), vous pouvez stocker les objets administratifs dans un fichier.
Lorsque vous utilisez un fichier, les deux objets administrés sont stockés dans un unique fichier (appelé .bindings sous à la fois Windows et UNIX), sous le répertoire que vous spécifiez pour le java.naming.provider.url (par exemple, file:///c:/temp sous Windows ou file:///tmp sous UNIX).
Configurez l'adaptateur Listener JMS sur le serveur d'application. Suivez les instructions de la section Ajout et configuration d'un adaptateur Listener JMS.
Configurez ensuite le listener JMS pour la synchronisation. Active Sync est requis si vous utilisez JMS, mais n'est pas utilisé pour les connexions directes.
Dans l'interface administrateur, cliquez sur Ressources dans le menu.
Dans la Liste des ressources, cochez la case à cocher Listener JMS.
Dans la liste Actions de ressource, sélectionnez Éditer la stratégie de synchronisation.
La page Éditer la stratégie de synchronisation relative à la ressource Listener JMS s'ouvre (Figure 11–15).
Sous Paramètres communs, localisez Administrateur mandataire et sélectionnez pwsyncadmin (cet administrateur est associé à un formulaire vide).
Sous Paramètres communs, localisez Règle de traitement et sélectionnez Synchronize User Password (Synchroniser le mot de passe de l'utilisateur) dans la liste. Le flux de travaux Synchronize User Password par défaut accepte chaque demande provenant de l'adaptateur Listener JMS, contrôle l'afficheur ChangeUserPassword puis enregistre de nouveau l'afficheur ChangeUserPassword.
Indiquez dans la zone Chemin d’accès du fichier le chemin du répertoire dans lequel les fichiers journaux actif et archivés doivent être créés.
À des fins de débogage, définissez le Niveau du journal sur 4 pour générer un journal détaillé.
Cliquez sur Enregistrer.