Nuestro objetivo es que el servidor web Apache 2 utilice los datos de los usuarios almacenados en un directorio LDAP, con esto nos proveerá de dos funcionalidades:
Autentificarse contra unas credenciales centralizadas en el directorio.
Emplear como directorio del usuario una ruta indicado en el mismo directorio LDAP.
De esta forma nos permitirá aprovechar las cuentas de usuario almacenadas bien en un dominio, bien las cuentas UNIX almacenadas en un servicio de directorio.
Autenticación LDAP
Para permitir a Apache que se autentifique contra LDAP, necesitamos la librería mod_ldap.so, la cual se instala con el paquete libapache-mod-ldap. Por lo tanto debemos instalar dicho módulo y habilitarlo, creando un enlace simbolico a la carpeta mods-enable de Apache desde mods-available.
Para establecer los permisos, tenemos dos opciones. Una es especificar los permisos en apache2.conf y la segunda, es establecer un archivo de configuración htaccess en cada carpeta (previamente debemos asegurarnos de haber habilitado esta opción en el archivo de configuración general: AccessFileName htaccess).
He aquí un ejemplo de configuración, que únicamente permite el acceso a usuarios contenidos en el directorio. Para ello realiza un filtro por uid.
AuthName "Ejemplo de Autentificación"
AuthType Basic
AuthLDAPURL ldap://localhost:389/ou=People,dc=eldelweb,dc=com?uid?sub?(objectClass=*)
Require valid-user
UserDir via LDAP
El segundo objetivo es que Apache 2 sepa como obtener el UserDir, o directorio de usuario, para que cada usuario en la máquina pueda publicar sus documentos dentro de una carpeta public_html dentro de su HOME y estos sean accesibles a traves de la direccion http://servidor/~usuario, cuando los datos relativos a dichos usuarios están almacenados en un directorio LDAP.
Para ello simplemente necesitaremos instalar el paquete libapache2-mod-ldap-userdir y habilitarlo tal y como se ha hecho en el ejemplo anterior.