Apache 2.2 autenticando contra OpenLdap
La posibilidad de auntenticar Apache contra un servidor ldap está presente desde la versión 1.3 hasta la actual, puede ser interesante que sólo los usuarios de un grupo de nuestro directorio puedan acceder a un lugar protegido del servidor web.
En la rama 2.0.x teníamos mod_auth_ldap y en la rama 2.2.x tenemos el módulo mod_authnz_ldap
Después de repasar la documentación parece que son prácticamente iguales por lo que probamos con nuestra configuración de toda la vida.
<Location /directorioprotegido>
# Tipo de autenticación y de donde
AuthType Basic# Mensaje en la ventana de autenticacion
AuthName «Acceso a Directorio Protegido»# Requerir que el usuario exista y tal, y tal
AuthLDAPURL ldap://ldap.example.es/ou=usuarios,dc=example,dc=es?uid
Require ldap-group cn=Admins,ou=grupos,dc=example,dc=es# Cuenta genérica para acceder al directorio, con permisos de Lectura
AuthLDAPBindDN «cn=nss,dc=example,dc=es»
AuthLDAPBindPassword “lector»</Location>
¡No funciona!. Obtenemos este error
access to /directorioprotegido/ failed, reason: verification of user id ‘user’ not configured
Con un poco de san Google, llego a la solución, necesitamos colocar como proveedor de autenticación ldap “When using mod_auth_basic, this module is invoked via the AuthBasicProvider directive with the ldap value.” Un poco escondido en la documentación pero lo dicen 🙂
<Location /directorioprotegido>
# Tipo de autenticación y de donde
AuthType Basic
AuthBasicProvider ldap# Mensaje en la ventana de autenticacion
AuthName «Acceso a Directorio Protegido»# Requerir que el usuario exista y tal, y tal
AuthLDAPURL ldap://ldap.example.es/ou=usuarios,dc=example,dc=es?uid
Require ldap-group cn=Admins,ou=grupos,dc=example,dc=es# Cuenta genérica para acceder al directorio, con permisos de Lectura
AuthLDAPBindDN «cn=nss,dc=example,dc=es»
AuthLDAPBindPassword “lector»</Location>
Reiniciamos el servidor y listo, ya funciona, solamente puede acceder al directorio protegido los usUarios del grupo «admins»