martes, 22 de enero de 2008

Conexión de un OpenLDAP con Meta4 PeopleNet

He estado últimamente un poco liado con la conexión de un LDAP como repositorio externo de autenticación para Meta4, sobre todo con lo que se refiere a la conexión SSL, así que se me ha ocurrido añadir mi experiencia.

Pongamos primero el caso de estudio:

Tenemos un OpenLDAP (no certificado aún por Meta4) al que un cliente desea conectarse para autenticar las contraseñas introducidas en el cliente de desarrollo, el cliente rico y el ESS/MSS.

Datos de este OpenLDAP:

  1. Versión de LDAP: 3

  2. Máquina: openldap.cliente.org

  3. Puertos: 389 y 636 (este para SSL)

  4. Cadena de búsqueda (DN): uid=user,ou=people,dc=cliente,dc=org

  5. Servidor de aplicaciones sobre AIX

  6. El cliente quiere que la conexión se haga usando SSL, y para ello suministra un certificado “ca_raiz.cer”.

Conexión sin usar SSL

Para la hora de hacer pruebas es, creo, el más cómodo y el más rápido.


  • Crearemos en Meta4 el repositorio LDAP: para ello se debe acceder a: "Herramientas de Desarrollo / Configuración de la aplicación / Repositorios de autenticación". Crearemos uno con los siguientes datos:


  • Configuraremos en Meta4 el acceso al LDAP: Crearemos en "Herramientas de Desarrollo / Configuración de la aplicación / Repositorios LDAP" un repositorio con los siguientes datos:

  • Creamos o tomamos un usuario de Meta4, por ejemplo OSCARLG, que sabemos cuyo “uid” dentro del OpenLDAP es olopez y los mapeamos usando la opción de menú: "Herramientas de Desarrollo / Configuración de la aplicación / Mapeo usuarios LDAP". (Nota: también es posible usar como usuario de Meta4 olopez y así nos evitaríamos el mapeo)


  • Lo siguiente será configurar la aplicación para que al logarse este usuario el proceso no busque el usuario en el repositorio interno sino en el nuevo que hemos configurado. Para ello, debemos acceder a: "Herramientas de Desarrollo / Configuración de la aplicación / Parámetros de aplicación". Iremos a la vista “Avanzada” (Menú Herramientas / Avanzado...) y buscaremos, primero, “Parámetros generales”, segundo, “Parámetros de sesión” y tercero “ID Repositorio externo de autenticación”. Añadiremos en la pestaña “Valores por ámbito” un nuevo ámbito por “Usuario de aplicación” y seleccionaremos la “OSCARLG”.

  • Luego en el Valor añadiremos el identificador de nuestro nuevo repositorio “0002”.



  • Ya estamos en disposición de logarnos con el usuario OSCARLG de Meta4 en el LDAP con su contraseña y no con la de Meta4.

Conexión de un usuario con SSL (a entornos Windows)

Para Meta4 es necesario disponer de un almacén de certificados, pero no cualquiera. Es necesario que se genere usando la herramienta “certutil” que incorpora el Sun ONE Directory Server Resource Kit (yo he usado la versión 5.2) que puede ser descargado desde site de SUN en: http://www.sun.com/download/products.xml?id=3f74a0db.

Vamos, inicialmente a conseguir la conexión SSL con el LDAP desde un cliente de desarrollo en Windows luego explicaré como hacerlo en AIX.

  • Descomprime el Zip descargado (dsrk52-WINNT4.0_OPT.zip) en, por ejemplo, C:\temp\dsrk52-WINNT4.0_OPT. Ejecuta: java DSRK en la línea de comandos y obtendrás un asistente de instalación para instalar DSRK en tu máquina… yo lo he dejado en E:/DSRK.

  • A continuación debes crear un directorio para almacenar la base de datos de certificados… yo la crearé en c:\MyCertsDB.

  • Luego ejecuta desde la línea de comandos, o crea un .bat con, el siguiente comando:

    PATH=%PATH%;E:\DSRK\lib;E:\DSRK\lib\nss\lib
    E:\DSRK\lib\nss\bin\certutil -N -d "C:\MyCertsDB"

  • Esto creará en C:\MyCertsDB 3 archivos: cert7.db, key3.db y secmod.db
  • Lo siguiente es conseguir el certificado del LDAP, yo lo he dejado en C:\MyCertsDB por comodidad. Se llama ca_raiz.cer (y con un alias que llamaré ca_raiz_alias)
  • Luego ejecuta desde la línea de comandos, o crea un .bat con, el siguiente comando:

    PATH=%PATH%;E:\DSRK\lib;E:\DSRK\lib\nss\lib
    E:\DSRK\lib\nss\bin\certutil -A -n ca_raiz_alias -t "C,C,C" -d “C:\MyCertsDB” -i “C:\MyCertsDB\ca_raiz.cer”

  • Esto incorpora este certificado a la Base de Datos de certificados que creamos.
  • Ahora, de nuevo en Meta4, en Herramientas de Desarrollo / Configuración de la aplicación / Repositorios LDAP modificamos el repositorio “0002” con los siguientes datos:



Conexión de un usuario con SSL (a entornos AIX)



  • Descomprime el Zip descargado (dsrk52-AIX5.2_OPT.zip) en, por ejemplo, C:\temp\dsrk52-AIX5.2_OPT. Lleva a un AIX usando sftp en binario los archivos: dsrk52.zip y DSRK.class. Ejecuta: #java DSRK.class en la línea de comandos y obtendrás un asistente de instalación para instalar DSRK en tu máquina… yo lo he dejado en /opt/meta4/dsrk.

  • A continuación debes crear un directorio para almacenar la base de datos de certificados… yo la crearé en /opt/meta4/mycertsdb.

  • Luego ejecuta desde la línea de comandos, o crea un .sh con, el siguiente comando:

    #export LIBPATH=/opt2/meta4/dsrk/lib:/opt2/meta4/dsrk/lib/nss/lib
    #/opt2/meta4/dsrk/lib/nss/bin/certutil -N -d /opt2/meta4/mycertsdb


  • Esto creará en /opt/meta4/mycertsdb los 3 archivos: cert7.db, key3.db y secmod.db

  • Lo siguiente es conseguir el certificado del LDAP, yo lo he dejado en /opt/meta4/mycertsdb por comodidad. Se llama ca_raiz.cer (y con un alias que llamaré ca_raiz_alias)

  • Luego ejecuta desde la línea de comandos, o crea un .sh con, el siguiente comando:

    #export LIBPATH=/opt2/meta4/dsrk/lib:/opt2/meta4/dsrk/lib/nss/lib
    #/opt2/meta4/dsrk/lib/nss/bin/certutil -A -n ca_raiz_alias -t "C,C,C" -d /opt2/meta4/mycertsdb -i /opt2/meta4/mycertsdb/ca_raiz.cer
  • Esto incorpora este certificado a la Base de Datos de certificados que creamos.

  • Ahora, de nuevo en Meta4, en Herramientas de Desarrollo / Configuración de la aplicación / Repositorios LDAP modificamos el repositorio “0002” con los siguientes datos:


  • Ya estamos en disposición de logarnos con el usuario OSCARLG de Meta4 en el LDAP con su contraseña y no con la de Meta4 pero bajo conexión SSL y contra el servidor de aplicaciones en AIX

Espero que os ayude, … porque a mi me ha costado :-)

3 comentarios:

Anónimo dijo...

Hola Oscar,
Oscar soy Juanpyg...excompi tuyo...
excelente blog....

Lo difundiré...gran trabajo, amigo

Un saludo

Oscar López dijo...

Soporte Meta4 tiene detectada una incidencia con un problema referente a la aplicación de los parámetros de aplicación, si el ámbito es Organización, que se encuentran bajo LOGON-SCH_SESSION. Estos parámetros no se aplican correctamente.

0125858//VIRTUAL MACHINE//Los parámetros de aplicación que se encuentran bajo LOGON-SCH_SESSION no se aplican correctamente, si el ámbito es Organización.

Se corrigió en el HotFix de tecnología “TC60SP5_71SP1_HF016”, correspondiente a la tecnología 7.1.SP001. Lo podeis encontrar en la KB: “SP6128” del CSS.

Si el hotFix no es aplicable se debe revisar el entorno para parametrizar estos parámetros a nivel de “Usuario” en vez de nivel de "Sociedad".


Un saludo!!

Oscar López dijo...

Parece que los enlaces están estropeados.

Os dejo otros enlaces para descargarse el Sun ONE Directory Server Resource Kit para Windows en:

Parte 1/5

Parte 2/5

Parte 3/5

Parte 4/5

Parte 5/5