Por algunas cuestiones me interesaba que la autentificación de usuario en Joomla no se hiciera contra la base de datos MySQL local, si no que autentificara los usuarios a través de un directorio LDAP, en este caso Novell eDirectory 8.8. Permitiendo así que los usuarios del directorio pudieran entrar en Joomla con las mismas credenciales que usan para entrar en otros sistemas de nuestra red.
Aún que este artículo se basa en la configuración para eDirectory , al ser LDAP un estándar de acceso a directorios es extrapolable a otros directorios como openLDAP ,Microsoft Active Directory, Sun iPlanet etc.., en este artículo sin embargo nos centraremos en Novell eDirectory.
La autentificación LDAP nativa es una de las nuevas características que nos trae la versión 1.5 de Joomla, para versiones anteriores existe un paquete llamado JAuth que nos permite hacer lo mismo, pero que en este artículo no vamos a tratar.
Para la configuración de la autentificación LDAP, deberemos conocer cómo funciona un directorio LDAP y como está estructurado nuestro directorio, si no es así deberíamos mirar la estructura de nuestro directorio mediante un cliente LDAP, y leer un poco de documentación sobre directorios LDAP.
Para configurar la autentificación en Joomla, primero de todo tendremos que activar el plugin de autentificación, para ello entramos como administradores en Joomla y nos situaremos en el menú Extensiones y seleccionamos Gestión de plugins.
Allí aparece una lista de todos los plugins disponibles, buscaremos y pincharemos en Authentication – LDAP, una vez allí aparecerá las opciones de configuración, primero de todo cambiaremos el Publicado a Sí.
A la izquierda hay una sección titulada “Parámetros del plugin”, allí nos pedirá algunos datos.
Servidor: Ponemos la dirección de nuestro servidor ip o nombre DNS
Puerto: Normalmente LDAP escucha por el puerto 389 pero esto es configurable en eDirectory por lo que tendremos que asegurarnos a través de que puerto escucha nuestro servidor LDAP.
Ldap V3: En mi caso Sí que queremos usar la versión 3 del protocolo LDAP
Negociar TLS: En entornos de desarrollo se puede dejar en deshabilitado, en entornos productivos debería esta en habilitado. Cuidado que eDirectory por defecto exige que todas las operaciones se hagan mediante TLS, para deshabilitarlo hay que modificar en nuestro eDirectory el objeto LDAP Server y LDAP Group y quitar el check “Exigir TLS para todas las operaciones”
Seguir referencias: No
Método de autorización: “Asegurar y buscar” o “Se asegura directamente como usuario”, la primera busca el usuario en cualquier rama del directorio, el segundo especifica donde hay que buscar el usuario, en mi caso lo tengo con Asegurar y Buscar.
Base DN: Distinguished name del objeto Base, O sea que objeto de nuestra estructura será la raíz de donde cuelgan el resto de objetos. Aquí podemos poner un objecto Organization si queremos buscar en toda la organización o una OrganizationalUnit si queremos buscar sólo en una OU, el valor de este parámetro dependerá de como hayamos estructurado nuestro directorio. Es importante que el usuario con el que nos queramos autentificar este siempre por debajo de este objeto, a uno o varios niveles si no, no seremos capaces de encontrarlo y la autentificación fallara.
Cadena a Buscar: Cómo buscaremos al usuario (porque atributo), en este caso lo buscaremos por el atributo cn con cn=[search] , aun que podríamos buscarlo por cualquier otro atributo con nombre_attr=[searc], si usamos “Se asegura directamente como usuario” tendremos que poner cn=[login]
Nombre de usuario para la conexión: Con que usuario nos conectaremos al directorio para poder buscar a los usuarios, hay que poner el usuario administrador o un usuario con permisos, por ejemplo cn=admin,o=directory.
Contraseña de conexión: Clave de este usuario
Mapear: Nombre Completo: Como se llama el atributo Nombre Completo en nuestro LDAP, en nuestro caso fullName
Mapear: E-mail: mail
Mapear: ID del usuario: cn
Joomla soporta varios métodos de autentificación simultáneamente, probando primero el primer plugin, luego el segundo etc. Con el parámetro “Ordenar” definiremos el orden del plugin en este caso como la autentificación primaria será el directorio LDAP le pondremos el valor 1.
Ahora ya podemos probar de autentificarnos con un usuario del directorio dentro de Joomla y en un principio tendría que funcionar.
Si la autentificación no funciona.
Es probable que hayamos cometido algún error en la configuración y que no nos funcione, Si no funciona debemos revisar la estructura de nuestro directorio con un visor LDAP ( por ejemplo Softerra LDAP browser ) , si está correctamente podemos usar el complemento de Joomla JDiagnostic el cual nos permite probar entre otras cosas los parámetros LDAP y la autentificación.