LDAP es el protocolo simple de acceso a directorios (Lightweight
Directory Access Protocol), un protocolo usado para acceder a
"Servidores de Directorio". El directorio es una clase especial
de base de datos que contiene información estructurada en
forma de árbol.
El concepto es similar a la estructura de directorios de los
discos duros, pero en este caso, el directorio raiz es "El Mundo"
y los subdirectorios de primer nivel son los "paÃses".
Niveles inferiores de la estructura de directorio contienen
entradas para compañÃas, organizaciones o lugares, y
en niveles aún más inferiores se encuentran las entradas para
la gente, y en algunos casos equipos informáticos y
documentos.
Para referirse a un archivo en un subdirectorio del disco duro se
usa algo como:
/usr/local/misapps/docs
Las barras marcan cada división en la referencia al
archivo, y la secuencia es leida de izquierda a derecha.
El equivalente a la referencia a un archivo en LDAP es el
"distinguished name" (nombre distinguible), abreviado como "dn".
Un ejemplo de dn podrÃa ser.
cn=Pedro Pérez,ou=Contabilidad,o=Mi CompañÃa,c=ES
Las comas marcan cada división en la referencia, y la
secuencia se lee de derecha a izquierda. Este dn se leerÃa
como:
country = ES
organization = Mi CompañÃa
organizationalUnit = Contabilidad
commonName = Pedro Pérez
De la misma manera que no hay reglas estrictas sobre como
organizar la estructura de directorios de un disco duro, un
administrador de un servidor de directorio puede establecer
cualquier estructura que sea útil para sus
propósitos. Sin embargo hay algunos acuerdos
tácitos que siempre deben seguirse. La conclusión es que no
se pueden escribir programas para acceder a un directorio si no
se conoce algo de su estructura, igual que no se puede usar una
base de datos sin algún conocimiento sobre lo que
está disponible en ella.
Información sobre LDAP se puede encontrar en:
Netscape SDK tiene una Guia de
programación muy buena en HTML.
Para incluir el soporte de LDAP en PHP, es necesario añadir el
parámetro --with-ldap[=DIR] a las
opciones de configuración de la compilación de PHP, donde DIR
apunta al directorio base de instalación de LDAP.
Para incluir soporte de SASL, también se debe añadir la siguiente
opción de compilación --with-ldap-sasl[=DIR], y
además el archivo sasl.h debe existir en el sistema.
Nota para los usuarios de Windows:
Para habilitar este módulo en entornos Windows, se deben copiar varios
archivos de la carpeta DLL del directorio PHP/Win32 a la carpeta SYSTEM del
sistema (que normalmente se encuentra en C:\WINNT\SYSTEM32
o C:\WINDOWS\SYSTEM).
Para las versiones de PHP <= 4.2.0 se tiene que copiar el archivo libsasl.dll, para las versiones
de PHP >= 4.3.0 se deben copiar los archivos libeay32.dll y ssleay32.dll.
Antes de usar las funciones LDAP deben conocerse los siguientes datos...
El nombre o dirección del servidor de directorio que se
va a usar
El "dn base" del servidor (la parte del directorio global
que maneja ese servidor, que puede ser por ejemplo "o=Mi
CompañÃa,c=ES")
Si es necesaria contraseña para acceder al servidor
(muchos servidores ofrecen acceso de lectura para usuarios
anónimos pero requieren una contraseña para cualquier otro
acceso)
La secuencia tÃpica de llamadas a funciones LDAP que realizan las
aplicaciones suele seguir el siguiente patrón:
ldap_connect() // establecer la conexión con el servidor
|
ldap_bind() // acceso anónimo o autentificado
|
Hacer búsquedas o actualizaciones en el directorio
y mostrar los resultados
|
ldap_close() // cerrar la conexión