Recientemente, en el contexto de un
proyecto, nos han solicitado la posibilidad de autenticarse en
Alfresco a través del mail de usuario, y no del username, para un
directorio de usuarios openLDAP. En este directorio de usuarios, se
centralizarian los usuarios externos a la organización, mientras que
los usuarios internos estarían gestionados en un directorio de
usuarios (Directorio Activo) independiente.
La solución técnica de la autenticación requiere de dos
pequeños desarrollos:
- Por un lado, debemos/podemos modificar el subsistema de
autenticación de usuarios por defecto de Alfresco para openLDAP de
manera que desde java podamos hacer una búsqueda en el openLDAP por
mail, identificar el usuario y enviar correctamente sus credenciales
(este tipo de modificaciones ya las hemos hecho aquí en otras
ocasiones, con motivo del conector
de CIFS para openLDAP). Por supuesto este mail debe ser único
en el directorio de usuarios externo. - Además de esto, es necesario controlar las variables de sesión de Share.
Este sistema permite hacer login tanto con el mail como con el
nombre de usuario del openLDAP. Y una vez logueado con el email, el
usuario visualizará la interfaz como si lo hubiese realizado con el
usuario de LDAP.
Por otro lado, hemos realizado una serie de modificaciones en
las búsquedas de usuarios de Alfresco Share para adaptarlo a estos
usuarios con mail como login:
- En primer lugar, el buscador de personas tiene que ser capaz de
buscar por mail. - La búsqueda de miembros de un sitio también se ha extendido para
poder buscar por mail. - Las invitaciones de usuarios son ahora también buscables por mail.
El buscador de personas de Alfresco Share podría hacer búsquedas como esta:
Y en proceso de invitación de personas en SItios podríamos buscar
también por email:
Por último, para gestionar invitaciones a los sitios de los
usuarios externos (openLDAP), hemos desarrollado un pequeño módulo que
permite agregarles desde Alfresco, creando el usuario en openLDAP si
es necesario. Este módulo es similar al que proporciona Alfresco pero,
utilizando un opeLDAP externo por un lado, y pudiendo asignar un rol
definido, como en el caso de un usuario interno de Alfresco.