Identity Manager puede utilizar Java Message Service (JMS) para recibir notificaciones de cambio de contraseña desde el servlet de PasswordSync. Además de garantizar la entrega, JMS puede distribuir los mensajes a múltiples sistemas.
Encontrará más información sobre este adaptador en la guía Sun Identity Manager 8.1 Resources Reference.
En esta sección se utiliza un escenario de ejemplo para explicar cómo configurar PasswordSync con un servidor de Sun JMS.
La información se ha organizado como sigue:
Un caso de uso típico (simple) para configurar PasswordSync con un servidor de JMS es con el objeto de que los usuarios puedan cambiar sus contraseñas en Windows, Identity Manager tome la nueva contraseña y después se actualicen las cuentas de usuario con las nuevas contraseñas en un servidor Sun Directory Server.
El entorno siguiente se ha configurado para este escenario:
Windows Server 2003 Enterprise Edition– Active Directory
Sun JavaTM System Identity Manager 6.0 2005Q4M3
MySQL ejecutado en SUSE Linux 10.0
Tomcat 5.0.28 ejecutado en SUSE Linux 10.0
Sun Java System Message Queue 3.6 SP3 2005Q4 ejecutado en SUSE Linux 10.0
Sun Java System Directory Server 5.2 SP4 ejecutado en SUSE Linux 10.0
Java 1.5 (Java 5.0)
Los archivos siguientes se copiaron al directorio common/lib de Tomcat para habilitar JMS y JNDI:
jms.jar (de Sun Message Queue)
fscontext.jar (de Sun Message Queue)
imq.jar (de Sun Message Queue)
jndi.jar (de Java JDK)
En esta sección se explica cómo crear y almacenar los siguientes objetos administrados, necesarios para el funcionamiento correcto del escenario de ejemplo.
Objetos de fábrica de conexiones
Objetos de destino
Los objetos administrados se pueden almacenar en un directorio LDAP o en un archivo. Si utiliza un archivo, todas las instancia del archivo deben ser iguales.
Encontrará instrucciones en:
En esta sección se asume que tiene instalado Sun Java System Message Queue. (Las herramientas necesarias se hallan en el directorio bin/ de la instalación de Message Queue.)
Para crear estos objetos administrados puede utilizar la GUI administrativa de Message Queue (imqadmin ) o la herramienta de línea de comandos (imqobjmgr). En las instrucciones siguientes se usa la línea de comandos.
Es posible configurar PasswordSync y el Receptor de JMS para utilizar los objetos administrados almacenados en un directorio LDAP. La Figura 11–14 ilustra dicho proceso. Tanto el servlet de PasswordSync como el adaptador del Receptor de JMS deben recuperar los valores de fábrica de conexiones y de destino del directorio LDAP para poder enviar y recibir mensajes.
A continuación se explica cómo utilizar la herramienta de línea de comandos de Message Queue (imqobjmgr) para almacenar objetos administrados en un directorio LDAP.
Abra la herramienta de línea de comandos de Message Queue (imqobjmgr) e introduzca los comandos indicados en Almacenamiento de objetos de fábrica de conexiones para almacenar los objetos de fábrica de conexiones.
#> ./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. |
Dentro de Almacenamiento de objetos de fábrica de conexiones imqAddressList, define el nombre de host del servidor/agente de JMS (gwenig.coopsrc.com ), su puerto (7676) y el método de acceso (jms).
En la herramienta de línea de comandos de Message Queue (imqobjmgr), introduzca los comandos indicados en Almacenamiento de objetos de destino para almacenar los objetos de destino.
#> ./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. |
Puede verificar un objeto recién creado mediante ldapsearch o un navegador LDAP.
Con esto termina la sección sobre almacenamiento de objetos administrados en un servidor LDAP. Omita la próxima sección, donde se explica cómo almacenar objetos administrados en un archivo, y continúe en la sección Configuración del adaptador del Receptor de JMS para este escenario.
Es posible configurar PasswordSync y el Receptor de JMS para utilizar los objetos administrados almacenados en un archivo. Si no va a almacenar los objetos administrados en un servidor LDAPAlmacenamiento de objetos administrados en un directorio LDAP), siga las instrucciones de esta sección.
Abra la herramienta de línea de comandos de Message Queue (imqobjmgr) e introduzca los comandos indicados en Almacenamiento de objetos de fábrica de conexiones para almacenar los objetos de fábrica de conexiones y especificar un nombre de búsqueda.
#> ./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. |
De manera predeterminada, el agente de Sun Message Queue permite crear automáticamente el destino de la cola (consulte config.properties, donde el valor predeterminado de imq.autocreate.queue es true).
Si el destino de la cola no se crea automáticamente, deberá crear el objeto de destino en el agente con el comando indicado en Creación del destino en el agente (donde myTestQueue es el destino).
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. |
Los objetos administrados se pueden almacenar en un archivo:
En un directorio: Un directorio permite centralizar el almacenamiento de los objetos de fábrica de conexiones y los objetos de destino.
Cuando se utiliza un directorio, estos objetos administrados se almacenan como entradas de directorio.
Si el servlet de Identity Manager PasswordSync y el servidor de Identity Manager no se encuentran en la misma máquina, cada uno de ellos debe tener acceso al archivo .bindings. Puede repetir dos veces la creación del objeto administrado (en cada máquina) o bien copiar el archivo .bindings en la ubicación adecuada de cada máquina.
En un archivo: Si el servlet de Identity Manager PasswordSync y el servidor de Identity Manager se ejecutan en el mismo servidor (o si no hay disponible un directorio), puede almacenar los objetos administrativos en un archivo.
Cuando se utiliza un archivo, ambos objetos administrados se almacenan en un solo archivo (denominado .bindings tanto en Windows como en UNIX), dentro del directorio que haya especificado para java.naming.provider.url (por ejemplo, file:///c:/temp en Windows o file:///tmp en UNIX).
Configure el adaptador del Receptor de JMS en el servidor de aplicaciones. Siga las instrucciones de la sección Adición y configuración del adaptador del Receptor de JMS .
Ahora debe configurar el Receptor de JMS para la sincronización. Necesitará Active Sync si utiliza JMS, aunque no se usa con las conexiones directas.
En la interfaz de administración, seleccione Recursos en el menú.
En la Lista de recursos, marque la casilla de verificación Receptor de JMS.
En la lista Acciones de recurso, elija Editar directiva de sincronización.
Aparece la página Editar directiva de sincronización para el recurso Receptor de JMS (Figura 11–15).
Dentro de Preferencias comunes, busque Administrador de proxy y seleccione pwsyncadmin. (Esta interfaz de administración está asociada a un formulario vacío.)
Dentro de Preferencias comunes, busque Regla de proceso y seleccione Synchronize User Password (sincronizar contraseñas de usuario) en la lista. El flujo de trabajo de sincronización de contraseñas de usuario predeterminado toma cada solicitud procedente del adaptador del Receptor de JMS, examina el visor ChangeUserPassword y después vuelve a comprobarlo.
En el cuadro Ruta del archivo de registro, especifique una ruta de acceso al un directorio donde deban crearse los archivos de registro activos y archivados.
Para la depuración, configure el Nivel de registro en 4 con el fin de generar un registro detallado.
Pulse Guardar.