Protocolo LDAP: qué es y cómo funciona

Protocolo LDAP: qué es y cómo funciona

LDAP (protocolo compacto de acceso a directorios) es un protocolo estándar que permite administrar directorios, esto es, acceder a bases de información de usuarios de una red mediante protocolos TCP/IP.

¿Qué es el protocolo LDAP?

Por lo general, las bases de información están relacionadas con los usuarios, pero algunas veces se utilizan con otros propósitos, como el de administrar el hardware de una compañía.

Desarrollado en 1993 en la Universidad de Michigan, el objetivo del protocolo LDAP fue reemplazar al protocolo DAP (utilizado para acceder a los servicios de directorio X.500 por OSI) integrándolo al TCP/IP. Desde 1995, DAP se convirtió en LDAP independiente, con lo cual se dejó de utilizar sólo para acceder a los directorios tipo X500. LDAP es una versión más simple del protocolo DAP, de allí deriva su nombre Protocolo compacto de acceso a directorios.

Qué es el protocolo LDAP
© Unsplash

¿Cómo funciona el protocolo LDAP?

El protocolo LDAP define el método para acceder a datos en el servidor a nivel cliente, pero no la manera en la que se almacena la información. Actualmente el protocolo LDAP se encuentra en su tercera versión y el IETF (grupo de trabajo de ingeniería de internet) lo ha estandarizado. Por lo tanto, existe una RFC (petición de comentarios) para cada versión de LDAP que constituye un documento de referencia:

  • RFC 1777 para LDAP v.2
  • RFC 2251 para LDAP v.3

LDAP le brinda al usuario métodos que le permiten conectarse, desconectarse, buscar información, comparar información, insertar entradas, cambiar entradas y eliminar entradas. Asimismo, el protocolo LDAP (en versión 3) ofrece mecanismos de cifrado (como SSL) y autenticación para permitir el acceso seguro a la información almacenada en la base.

¿Qué estructura tiene el directorio LDAP?

LDAP presenta la información bajo la forma de una estructura jerárquica de árbol denominada DIT (árbol de información de directorio), en la cual la información, denominada entradas (o incluso DSE, Directory Service Entry), es representada por bifurcaciones.

  • Una bifurcación ubicada en la raíz de una bifurcación se denomina entrada raíz.
  • Cada entrada en el directorio LDAP corresponde a un objeto abstracto o real (por ejemplo, una persona, un objeto material, parámetros, etc.).
  • Cada entrada está conformada por un conjunto de pares clave/valor denominados atributos.
Qué es el protocolo LDAP
© CCM

¿Cuáles son los componentes de una entrada LDAP?

Cada entrada está compuesta por un conjunto de atributos (pares clave/valor) que permite caracterizar el objeto que la entrada define. Existen dos tipos de atributos:

  1. Atributos normales, que son los atributos comunes (apellido, nombre, etc.) que distinguen al objeto.
  2. Atributos operativos, que son atributos a los que solo el servidor puede acceder para manipular los datos del directorio (fechas de modificación, etc.).

Una entrada se indexa mediante un nombre completo (DN) que permite identificar de manera única un elemento de la estructura de árbol.

Un DN se constituye tomando el nombre del elemento denominado nombre distintivo relativo (RDN, es decir, la ruta de la entrada en relación con sus entradas superiores) y agregándole el nombre entero de la entrada principal. Se trata de utilizar una serie de pares clave/valor para poder localizar una entrada de manera única. A continuación encuentras una serie de claves generalmente utilizadas:

  • uid (id de usuario): una identificación única obligatoria.
  • cn (nombre común): el nombre de la persona.
  • givenname: el nombre de pila de la persona.
  • sn (apellido): el apellido de la persona.
  • o (organización): la compañía de la persona.
  • u (unidad organizacional): el departamento de la compañía para la que trabaja la persona.
  • mail: la dirección de correo electrónico de la persona (por supuesto).

Por lo tanto, un nombre completo tendrá la siguiente forma:

uid=jeapil,cn=pillou,givenname=jean-francois

El Relative Distinguished Name aquí es "uid=jeapil". Así, el conjunto de definiciones de objetos y atributos que un servidor LDAP puede administrar se denomina esquema. Esto permite, por ejemplo, definir si un atributo puede poseer uno o varios valores. Además, un atributo llamado objectclass permite definir si los atributos son obligatorios u opcionales.

¿Cuáles son las operaciones que realiza LDAP?

LDAP brinda un conjunto de funciones (procedimientos) para llevar a cabo solicitudes en los datos para buscar, cambiar y eliminar entradas en los directorios.

A continuación encontrarás una lista de las principales operaciones que puede realizar LDAP:

Funcionamiento Descripción
Abandon (Abandonar) Cancela la operación previa enviada al servidor
Add (Agregar) Agrega una entrada en el directorio
Bind (Enlazar) Inicia una nueva sesión en el servidor LDAP
Compare (Comparar) Compara las entradas en un directorio según los criterios
Delete (Eliminar) Elimina una entrada de un directorio
Extended (Extender) Realiza operaciones extendidas
Rename (Cambiar nombre) Cambia el nombre de una entrada
Search (Buscar) Busca entradas en un directorio
Unbind (Desenlazar) Finaliza una sesión en el servidor LDAP

¿Cuál es el formato de intercambio de datos de LDIF?

LDAP brinda un formato de intercambio de datos (LDIF, formato de intercambio de datos de LDAP) que permite importar y exportar datos desde un directorio mediante un archivo de texto simple. La mayoría de los servidores LDAP admiten este formato, lo cual permite una gran interoperabilidad entre ellos.

A continuación se encuentra la sintaxis para este formato:

[<id>] dn: <distinguished name> <attribute> : <value> <attribute> : <value> ...

En este archivo, id es opcional. Es un número entero positivo que permite la identificación de la entrada en la base de datos.

Cada entrada nueva debe separarse de la definición de la entrada anterior mediante una línea en blanco.

Es posible definir un atributo a través de diversas líneas al comenzar las líneas siguientes con un espacio o un espacio de tabulación.

Es posible definir diversos valores para un atributo al repetir la cadena name:value en las líneas separadas.

Cuando el valor contiene un carácter especial (no imprimible, un espacio o :), el atributo debe estar seguido de :: y después del valor codificado en base 64.

Cuál es el formato de intercambio de datos de LDIF
© Unsplash

Enciclopedia