LDAP es el protocolo de acceso a directorios ligero (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 inferiores se encuentran las entradas para la gente, y quizás de 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 "db". 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. El mensaje es que no se puede escribir código para acceder 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.
Se necesita obtener y compilar las bibliotecas LDAP cliente de la Universidad de Michigan ldap-3.3 package, Netscape Directory SDK 3.0 ó OpenLDAP si queremos que PHP soporte LDAP.
LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory.
Note to Win32 Users: In order to enable this module on a Windows environment, you must copy several files from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your windows machine. (Ex: C:\WINNT\SYSTEM32, or C:\WINDOWS\SYSTEM). For PHP <= 4.2.0 copy libsasl.dll, for PHP >= 4.3.0 copy libeay32.dll and ssleay32.dll to your SYSTEM folder.
El comportamiento de estas funciones está afectado por los valores definidos en php.ini.
For further details and definition of the PHP_INI_* constants see ini_set().
Esta extensión no tiene ningún tipo de recurso definido.
Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.
Recuperar informacion para todas las entradas donde el apellido empiece por "P" de un servidor de directorio, mostrando un extracto con el nombre y dirección de correo electrónico.
Antes de usarse las llamadas LDAP se debe saber ..
El nombre o dirección del servidor de directorio que se va a usar
El "dn base" del servidor (la parte del directorio global contenida en ese servidor, que puede ser por ejemplo "o=Mi Compañia,c=ES")
Si es necesaria contraseña para acceder al servidor (muchos servidores ofrecen acceso de lectura para usuarios anónimos pero requieren un password para cualquier otro acceso)
La secuencia típica de llamadas LDAP suele implementarse en aplicaciones que siguen el siguiente patrón:
ldap_connect() // establecer la conexión con el servidor
|
ldap_bind() // login anónimo o autentificado
|
Hacer búsquedas o actualizaciones en el directorio
y mostrar los resultados
|
ldap_close() // Cerrar la conexión