Sincronización Usuarios-Grupos-Roles de Liferay con el LDAP (ApacheDS)

Es muy interesante poder sincronizar los usuarios de Liferay con un LDAP, sea el cual sea para luego poder disponer de un árbol de usuarios de la aplicación final sobretodo si la tenemos que integrar con un Alfresco.

La idea es tener un directorio de usuarios y sus respectivos grupos a los que pertenecen y que este directorio se gestione con el Liferay. Además para mejorar la funcionalidad de asignación de permisos conviene tener una creación de roles a partir de grupos.

Pasos a seguir:

1) Instalamos y arrancamos el Apache Directory Server

2) Creamos la rama para meter los usuarios, de tipo Domain por ejemplo dc=example,dc=com y dentro de esta dos unidades organizativas (ou) los users y los groups.   Así ya tenemos preparado el LDAP.

Configuración del LDAP

3) Configuramos el Liferay: Panel de control -> Settings -> autenticación -> LDAP

Habilitamos el uso del LDAP, creamos un nuevo LDAP server y activamos la Importación y la Exportación.

Configuración:

4) Configurar portal-ext.properties del Liferay (tomcat-6.0.26\webapps\ROOT\WEB-INF\classes) para activar la sincronización de Grupos-Roles, así para cada grupo creado en el LDAP se creará un Rol equivalente. Si no existe el fichero lo creamos:

ldap.import.method=group
ldap.import.create.role.per.group=true
ldap.import.user.password.enabled=false
ldap.import.user.password.autogenerated=true
ldap.import.user.password.default=test
ldap.import.group.base.dn.enabled=true

5) Podemos arrancar el Liferay y a partir de ahora los usuarios los podremos gestionar desde Liferay y se sincronizaran sus grupos y roles con el LDAP y viceversa.

Es importante saber que la actualización de los grupos en el LDAP se realiza cuando se asocian miembros al grupo y que la importación o creación automatica de los roles a partir de los grupos se realiza en procesos específicos:
– en el start del Liferay
– cada cierto tiempo via el com.liferay.portlet.admin.messaging.LDAPImportMessageListener que utiliza la propiedad: ldap.import.interval=10 (10minutos por defecto de portal.properties, que podríamos modificar en el fichero portal-ext.properties con un nuevo valor).
– Podríamos forzar la importación/sincronización de usuarios/grupos/roles mediante el programa si utilizamos el Bean que ya esta definido en Liferay:

<bean id="com.liferay.portal.security.ldap.PortalLDAPImporterUtil">
 <property name="portalLDAPImporter">
 <bean>
 <property name="LDAPToPortalConverter" ref="ldapToPortalConverter" />
 </bean>
 </property>
 </bean>

y le ejecutaríamos el método:

importFromLDAP() que realiza o fuerza entre otras cosas la «creación de roles» a partir de grupos.

Espero que os sirva!

Esta entrada fue publicada en LDAP, Liferay, Syncronization. Guarda el enlace permanente.

5 respuestas a Sincronización Usuarios-Grupos-Roles de Liferay con el LDAP (ApacheDS)

  1. Lina Margarita dijo:

    Excelente tutorial, tengo una pregunta. Quero tener tres Roles y que la primera vez que un usuario se registre quede en un Rol por defecto. El usuario podra ir subiendo de Rol. Cuando quiera cambiarle el rol al usuario lo hago desde el Liferay o desde Ldap?

    Esta configuracion me sirve para un Liferay de Produccion y para lo que quiero hacer?

    Esto me crea Nuevos grupos o Nuevos Roles?

    Muchas Gracias

    • vrossello dijo:

      Gracias, el «tutorial» está basado en que la gestión de usuarios se realiza bajo Liferay y por tanto es desde éste donde habrá que modificar los Roles.
      En nuestro caso Grupos ya que el sistema de sincronización sólo crea Grupos y mediante los parámetros del punto 4) los grupos se convierten en Roles.
      No soy un experto de Liferay pero el que esté en Producción o no dependerá de lo que quiera hacer con esta solución específica.

  2. Gracias por el tutorial esta excelente y me ha servido mucho.
    Mi inquietud es la siguiente, despues que ya tengo mapeado los Roles tanto en LDAP como en el Liferay, como le digo a Liferay que por defecto a cada usuario que se registre por primera vez me le asigne un Rol especifico. Por ejemplo tengo Tres roles: administradores, invitados, desarrolladores.

    Como le indico que por defecto todo el mundo al registrarse tenga el rol de Invitado?

    Muchas Gracias!

    • vrossello dijo:

      Para configurar los roles por defecto de los usuarios en Liferay se tienen que configurar las opciones de: Control Panel –> Portal Settings –> Groups o Roles

  3. David Alejandro dijo:

    Muchas gracias funciona muy bien me ayudo mucho ..

Deja un comentario