LDAP

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

LDAP es el acrónimo de "Lightweight Directory Access Protocol". Se trata de un protocolo a nivel de aplicación para acceder a un servicio de directorio ordenado y distribuido para encontrar información en un entorno de red.

LDAP no es la base de datos a la que se consulta, aunque de manera coloquial se suele referir tanto al protocolo como a la base de datos a la que se realizan las consultas.

El uso de LDAP puede ser muy diverso, pero el más común para los administradores de sistemas es para almacenar o consultar información sobre el login como los usuarios, contraseñas, grupos o política de contraseñas.

Protocolo LDAP

Cuando un cliente LDAP quiere hacer una consulta a un servidor LDAP se produce una comunicación a través de la red. El puerto por defecto es el TCP 389. Al igual que otros clientes, este envía una petición y el servidor envía respuestas.

Las peticiones son las siguientes:

  • Start TLS - Para utilizar la extensión TLS de LDAPv3 para una conexión segura.
  • Bind - Sirve para autenticarse en el servidor especificando una versión del protocolo LDAP
  • Search - Para buscar entradas dentro del directorio.
  • Compare - Prueba si una entrada tiene un valor concreto.
  • Add - Añadir nuevas entradas.
  • Delete - Borrar entradas.
  • Modify - Modificar una entrada.
  • Modify Distinguished name (DN) - Modificar el DN de una entrada. Es diferente al modificar porque esto puede suponer cambiar la estructura del directorio.
  • Abandon - Avortar una petición previa.
  • Extended Operation - Operación genérica usada para definir otras.
  • Unbind - Cerrar una conexión.

Clientes LDAP

Los clientes de LDAP pueden ser muy diversos. La mayoría lo usan para autentificarse. Entre ellos:

  • Sistemas operativos como Windows (Active Directory) o Linux, Para autentificar usuarios.
  • Samba puede usar LDAP como backend para su base de datos de usuarios.
  • Moodle, Joomla y otros CMS pueden aprovechar los mecanismos de autenticación de LDAP para sus propios usuarios.
  • Squid
  • ...

Directorio LDAP

LDAP accede a su base de datos entendiéndola como una base de datos jerárquica en forma de árbol. Esto implica que hay un nodo raíz y a partir de ahí se organiza una estructura con subárboles.

Cada nodo del árbol es un objeto LDAP y puede contener otros nodos hijos.

Ldap1.png

Si observamos este esquema, podemos ver varios elementos en el directorio:

  • El DIT o Directory Information Tree, que es el aŕbol en sí.
  • Cada nodo tiene un Relative Distinguished Name RDN, que es su nombre relativo, sin tener en cuenta en la posición del árbol en que está respecto a sus nodos padres. Por ejemplo, el primero tiene de RDN dc=com. Este puede indicar lo que se desee, por ejemplo ou=People significa "unidad organizativa" y se refiere a personas.
  • Cada nodo tiene un Distinguished name DN que es la unión de su RDN con el de sus nodos padres. Así, Juan Gama tiene como DN cn=Juan Gama, ou=People, I=Alicante, dc=compañíaB, dc=com

El nodo raíz puede tener una nomenclatura basada en DNS, como es el caso o en el criterio que se desee.

Cada objeto LDAP, además de tener un DN, puede tener clases y atributos que lo describen. Las clases definen que atributos deben o pueden estar presentes. Estas clases se definen en el schema.

Un schema es un conjunto de definiciones que describen los datos que puede almacenar cada objeto. Hay varios esquemas según las necesidades, pero se puede personalizar o crear uno propio.