¿Qué es un LDAP?
En este artÃculo pretendemos dar una pequeña explicación sobre LDAP para aquellos que lo desconozcan y asà luego poder ampliar sus conocimientos.
LDAP (Lightweight Directory Access Protocol) o Protocolo de Acceso Ligero a Directorio no se trata de un sistema de almacenamiento como muchas veces se piensa, se trata de un protocolo de comunicación para acceder y modificar información almacenada en un directorio, conocido normalmente como directorio LDAP. Por lo tanto, cuando se dice: “guardemos los datos en el LDAP”, se está cometiendo una equivocación.
Al tratarse de un protocolo, que funciona bajo TCP/IP, es independiente de la plataforma. Es lo que se usa para conectarse a un directorio LDAP, el cual puede estar implementado como sea, ya sea una versión comercial, open source, bajo Windows, UNIX o cualquiero otra plataforma.
¿Es el directorio LDAP una base de datos?, sÃ, lo es, pero no se trata de una base de datos relacional como pueda ser Oracle o MySQL. Se trata de un directorio, como pueda serlo el que guarda las fichas de los libros en una biblioteca. Al tratarse de un directorio, está totalmente jerarquizado y está optimizado para muchas lecturas y de pequeño volumen. Aunque se puede guardar lo que se quiera, está pensado para almacenar datos de poco tamaño (email, teléfono, dirección, permisos) y, a su vez, no está optimizado para que haya muchas modificaciónes, piensa que por ejemplo la dirección de correo electrónico no es algo que se modifique con mucha frecuencia.
Como ya hemos dicho anteriormente, el protocolo LDAP accede a la información contenida en un directorio, este directorio se trata de un árbol compuesto de entradas de directorio, las cuales son un conjunto de atributos, formados por nombre-valor, según se indica en un esquema.
Para identificar una entrada en el directorio LDAP, se precisa de su DN o Distinguished Name, el cual estará formado por su atributo nombre (CN o Common Name, cn=”Fulano Perez”) y otros atributos que lo relacionen con las jerarquÃas superiores, ya sea usando O u C (formato X.500 o=”Mi Empresa”, c=ES), O (según internet o=”empresa.com”), DC (componentes de dominio dc=empresa, dc=com). Después del DN habrá otra serie de atributos que definan la entrada.
Un ejemplo de esto, representado en formato LDIF y que nos puede hacer entender mejor el concepto, serÃa el siguiente:
dn: cn=Fulano Perez,dc=empresa,dc=com cn: Fulano Perez givenName: Fulano sn: Fulano telephoneNumber: +34 555 11 22 33 mail: fulano.perez@empresa.com manager: cn=Mengano Martinez,dc=empresa,dc=com objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top
Como se puede apreciar, en esta entrada dirÃamos que “Fulano Perez”, perteneciente a “empresa.com” (en este caso se organiza como si se tratara de internet, porque puede darse el caso de que sea un grupo de empresa .com de las cuales “empresa.com” es una de ellas). Después veremos que hay datos referentes al empleado, como son un email y su teléfono, y datos a cerca del tipo de registro, en este caso de una persona empleada en la empresa, y datos sobre su jefe, que si los usamos en un acceso al directorio LDAP podremos obtener una información parecida.
Para que quede más claro el concepto de directorio, vamos a ver como serÃa la estructura:
- com - otraempresa ... - empresa ... - Mengano Martinez ... - Fulano Perez
Directorios LDAP
Algunas de las implementaciones del servidor LDAP o directorio LDAP son las siguientes:
- Apache Directory Server
- OpenLDAP
- Novell eDirectory
- Windows Server 2003 Active Directory
- Oracle Internet Directory
- Sun Java System Directory Server Enterprise Edition
Clientes
- JXplorer (Java)
- LDAP Browser/Editor (Java)
- Luma (Unix)
- Frood (Unix)
- CoralDirectory LDAP Browser (Windows)
- LDAP Exporter (Windows)
- maX.500 Macintosh
- phpLDAPadmin (web)
LibrerÃas
- Java LDAP
- JDBC-LDAP Bridge Driver
- Sun (iPlanet) Directory Server Deployment Guide
- PHP LDAP
- .NET LDAP
- Perl-LDAP
- Ruby/LDAP
- Mozilla LDAP C SDK
Más información
- Wikipedia (español – inglés)
- ldapman.org