Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

Portlet de sincronizacion flexible y programada de usuarios de LDAP en comunidades de Liferay Portal EE

Test Liferay
Test Liferay

Durante los últimos dos meses un equipo mixto de zylk y Bilbomatica ha estado
desarrollando, conjuntamente con personal de la UPV/EHU (Gabriel
Maqueda y Alberto Soto
), un portlet para la sincronización
de usuarios en las comunidades de Liferay(version 6 EE). El
escenario es el de una organización o universidad con miles de
usuarios potenciales
, administrados y centralizados en un
sistema de directorio activo o LDAP corporativo, que
necesita asignar  de una manera flexible, ágil y programada un
conjunto de usuarios en las diferentes comunidades de un
portal Liferay
.

Los requisitos que se pretendía cubrir eran los siguientes:

  1. Poder delegar en los administradores de las
    comunidades la sincronización de los usuarios que pertenezcan a las
    mismas, siendo el origen de la sincronización el LDAP corporativo de
    la UPV/EHU.
  2. Permitir que los administradores de las comunidades puedan, sin
    tener conocimientos de la estructura del LDAP ni de la sintaxis de
    las querys, definir filtros para realizar la
    sincronización
    de dichos usuarios
  3. Permitir la planificación de las sincronizaciones con
    periodicidad variable y seleccionable por el
    propio administrador de la comunidad.
  4. Enviar informes cada vez que se ejecute una
    sincronización a una lista de usuarios definidos por el propio administrador.
  5. Traducción al euskera, tanto del interfaz como del asistente
    para las querys del LDAP
    , así como del informe resultante
    tras la sincronización de los usuarios de comunidades.

Nos planteamos primero resolver la duda técnica que teníamos antes
de empezar el proyecto

  • Usar o no el planificador de tareas que Liferay
    integra, basado en quartz.

La conclusión fue que se podría hacer uso del
planificador de tareas de Liferay con su modelo, lo cual permitía
no tener que instanciar dos planificadores y que el
propio portal sea capaz de gestionar parte de las tareas de manera
transparente. Para ello el porltet se desplegó implementando el
scheduler de Liferay con una periodicidad diaria y en la
implementación del scheduler es donde se realiza la lógica de qué
tareas de sincronización se deben ejecutar cada día.

Una vez decidida la arquitectura de la solución
procedimos a su implementación. Desde un punto de vista funcional las
características del desarrollo son las siguientes:

  • Altas en comunidad
  • Bajas en comunidad.
  • Importar del LDAP


El portlet permite personalizar los informes de la siguiente forma:

  • Seleccionar el idioma en que se generarán los informes. Los
    informes se podrán obtener tanto en castellano como en euskera.
  • Seleccionar el momento preciso en el que se va a realizar el
    informe o informes dependiendo del modo en que este se configure.
  • Obtener informes personalizados atendiendo a características y
    a valores concretos.
  • Gestionar y añadir destinatarios. Estos destinatarios recibirán
    los informes a través de su correo electrónico.
  • Enviar el mismo informe a múltiples destinatarios.
  • Seleccionar los datos que mostrará el informe.

En cuanto a la gestión de la expresión de LDAP de
la cual se obtienen los usuarios que se van a sincronizar, el portlet
dispone de un editor, desde donde el administrador de la comunidad
puede seleccionar una característica y un valor. Además el usuario
dispone de operadores lógicos ( AND, OR & NOT ),
para poder realizar expresiones más complejas.
Cada comunidad
dispone de una tarea que puede configurar para la sincronización como
se muestra en la siguiente imagen:

Portlet de sincronizacion flexible y programada de usuarios de LDAP en comunidades de Liferay Portal EE

 

El portlet está accesible desde el panel de control de cada
comunidad
, para los usuarios con rol de administrador de la comunidad.

La configuración se realiza desde la siguiente pantalla:

Portlet de sincronizacion flexible y programada de usuarios de LDAP en comunidades de Liferay Portal EE

Además se puede definir la query de LDAP que nos devolverá
los usuarios que se vayan a sincronizar:

Portlet de sincronizacion flexible y programada de usuarios de LDAP en comunidades de Liferay Portal EE

También se pueden gestionar los destinatarios de las notificaciones:

Portlet de sincronizacion flexible y programada de usuarios de LDAP en comunidades de Liferay Portal EE

Como temas destacables habría que resaltar:

 

  • La gestión de los atributos del LDAP es fácilmente
    extendible para que se pueda utilizar en un conjunto amplio de
    estructuras de LDAP
    . En el caso de la UPV/EHU el LDAP
    está basado en atributos, pero se podría usar en una estructura
    jerárquica. En zylk lo hemos probado con nuestro LDAP con resultados satisfactorios.
  • En una evolución de este desarrollo, se podría ampliar la parte
    de edición de receptores del informe, de manera que se pudieran
    añadir nuevos receptores a partir de los usuarios
    existentes en el portal
    . Así pues, la selección del
    idioma del informe se realizaría de manera transparente para el
    usuario del portlet y a partir de la configuración personal de
    idioma seleccionada por el usuario.
  • Se intentó crear un hook para que el portlet se
    integrara como una nueva acción en el portlet de
    comunidades
    pero no funcionó correctamente, así que se
    descartó esa posibilidad. Nos faltó mirar los listas blancas de
    portlets que se pueden añadir en tiempo de ejecución para ver si esa
    opción era viable.

Si te ha parecido interesante comparte este post en RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *