Probabemente el primer motivo por el que escribo este post es para tener esta información a mano y no tener que pasar días buscandola de nuevo si la necesito 
Seguramente algunos de vosotros habeis utilizado alguna vez Apache como servidor web, y si lo haceis en una intranet, un dominio de empresa o similar, puede que querais hacer un sistema de autenticación para controlar los usuarios que acceden a la aplicación.
Buscando por internet puedes encontrar bastante inforación de cómo conectar Apache con un servidor LDAP para así facilitar a autenticación. En mi trabajo el dominio está montado (como seguramente en muchos casos) con Active Directory de Windows, e Active Directory es un servidor LDAP pero, como a costumbra a gustare a Microsoft,tiene algunas diferencias que complican esta conexión desde Apache.
Por lo tanto, tras horas de búsqueda y cientos de pruebas, encontré mi solución en esta web; os cuento un poco como lo he conseguido porque la mayoría de información en internet habla de hacerlo con Apache instalado en Linux y un servidor LDAP "como Dios manda" pero ese desgraciadamente no es el caso en la mayoría de las situaciones.
Para hacer este ejemplo utilizamos un instalador que instala PHP, Apache, MySQL todo de golpe en un equipo en Windows, este isntalador se llama WAMP. Lo descargas de su web e instalas como cualquier programa de Windows.
Este Apache necesitará a
hora un par de modificaciones para poder conectarse a cualquier servidor LDAP
Primero en la opción de módulos de Apache del WAMP activamos dos módulos, el ld
ap_module y el authnz_ldap_module, son los módulos que hacen que Apache se pueda conectar a un servidor LDAP, esto también se podría hacer en el fichero de configuración de Apache.
Ahora viene e probema, porque por internet encontrarás miles de formas de modificar la configuración para conectarse a un LDAP pero la inmensa mayoría no funcionan con un Dominio Windows; entonces encontré la única solución que me ha funcionado, editamos el fichero http.conf
y añadimos al final de ese fichero esto:
<Directory "c:\wamp\www\protec">
AuthBasicProvider ldap
AuthType Basic
AuthName "Area protegida"
AuthLDAPURL "ldap://dominio.es:389/DC=dominio,DC=es?sAMAccountName?sub?(objectClass=user)" NONE
AuthLDAPBindDN "
Esta dirección electrónica esta protegida contra spambots. Es necesario activar Javascript para visualizarla
"
AuthLDAPBindPassword "password"
require ldap-attribute objectClass=user
</Directory>
Los datos serían los siguientes:
AuthName "Area protegida" -> es el texto que va a salir en la ventana que solicita el usuario
AuthLDAPURL es la url del servidor LDAP donde pone "dominio" tendrás que poner el nombre de tu dominio y donde pone "es" seleccionar si es "es", "com", "net", etc.
AuthLDAPBindDN " Esta dirección electrónica esta protegida contra spambots. Es necesario activar Javascript para visualizarla " -> es el usuario que debe tener capacidad para consultar en el dominio si el usuario tecleado existe.
AuthLDAPBindPassword "password" -> es la contraseña del usuario anterior; tanto este usuario como la contraseña son uno de los principales quebraderos de cabeza pues en un LDAP normal no sería necesario facilitarlos.
Ahora reiniciamos el servidor Apache.
De este modo el Apache puede conectarse al servidor del dominio y comprobar que el usuario y contraseña suministrados (que te pide cada vez que intentas acceder a la carpeta "protec") es correcta.
| < Anterior | Siguiente > |
|---|




