¿Qué es LDAP?

¿Qué es LDAP?

Es posible que hayas encontrado estas siglas, y te preguntes qué es LDAP. Corresponden a Lightweight Directory Access Protocol (Protocolo Ligero de Acceso a Directorios) y es un mecanismo importante en el inicio de sesión de los ordenadores en red, sobre todo dentro de las empresas.

LDAP aparece muchas veces asociado a Active Directory, un sistema de Windows que gestiona el inicio de sesión de los usuarios dentro de la red de una empresa, o "dominio". Así se determina a qué recursos puede acceder esa persona (archivos, carpetas, impresoras, otros equipos...), algo básico en la red informática de cualquier organización.

Un inicio de sesión con LDAP simplifica la identificación del empleado, por ejemplo, dándole permisos de una sola vez para entrar en su carpeta de documentos, usar el email corporativo o un servicio FTP para subir archivos, sin tener que meter contraseñas separadas.

Imagen - ¿Qué es LDAP?

Además, gracias a LDAP se pueden establecer diversas políticas en la administración de los PCs, como automatizar las actualizaciones de los programas.

En LDAP se pueden crear distintos "objetos", incluyendo usuarios, equipos o grupos. Es decir, nos deja tratar de forma diferente a un miembro de la organización y a los ordenadores físicos, de modo que un trabajador tenga la misma configuración sin importar el PC que use en cada momento.

Los grupos, por otra parte, facilitan la gestión. Podemos querer dar privilegios diferentes a todos los miembros del departamento de contabilidad y al de diseño, porque sus tareas no requieren los mismos recursos.

La actual versión es LDAPv3, basada en el RFC 4511 (los RFC son documentos que definen muchas las reglas básicas de Internet y de las redes locales), y que es usada ampliamente.

LDAP es un protocolo de acceso, es decir, un "lenguaje entre las máquinas", aunque muchas veces el término se utiliza de forma más amplia para referirse al software que implementa LDAP, o a la base de datos donde guarda la información.

Este software que lo hace funcionar suele estar en un servidor, un equipo separado que centraliza los datos. De esta forma, el resto de los equipos se conectan al servidor o servidores para pedir la información necesaria, lo que nos lleva al siguiente apartado.

LDAP, la base de Active Directory

LDAP es uno de los protocolos que utiliza Active Directory (Directorio Activo) en Windows. Es el software que normalmente da forma real a sus funciones, y sirve para gestionar los inicios de sesión y los permisos.

Aparte de LDAP, entre las bases de Active Directory también están los protocolos DNS, DHCP y Kerberos. Para crear un dominio Active Directory es necesario Windows 2000 Server o cualquier versión "Server" posterior, para unirse hace falta un PC con Windows en edición Pro o Enterprise.

Imagen - ¿Qué es LDAP?

Otros desarrolladores han creado alternativas libres basadas en LDAP, por ejemplo, Open DS, ApacheDS, OpenLDAP o Red Hat Directory Server, también Samba es un software útil, aunque no cubra todas las especificaciones.

Esto es importante, pues las siglas LDAP se utilizan bastante en el mundo Linux, para hablar de las alternativas a Active Directory, que pueden ser necesarias para ofrecer compatibilidad con sistemas Windows.

El protocolo LDAP contempla la creación entradas de datos para distintos fines, pero uno muy habitual es un empleado, que al final será el que inicie la sesión. Es común que las entradas incluyan datos como el nombre y apellidos, su email en la empresa, su teléfono y otros detalles como su departamento o superior directo.

Claro que las entradas de LDAP hacen referencia a muchos otros recursos, como equipos, impresoras o grupos, y en cada caso se asocia la información apropiada para su uso.

Un ejemplo de entrada en LDAP

Si tienes que trabajar con LDAP, aparte de saber qué es, tendrás que conocer la estructura de las entradas. Al final, no deja de ser una base de datos, pero muy sencilla, y pensada para la lectura rápida de datos, no la escritura intensiva.

Es decir, guardar los nombres y emails de los empleados en LDAP tiene mucho sentido, porque no se modifican con frecuencia, y este protocolo es compatible con muchas otras soluciones, como el correo empresarial de Exchange.

En cambio, sería mala idea guardar un registro de compras y ventas en LDAP, pues requieren muchas escrituras y una estructura de datos más compleja.

Con esto claro, veamos cómo podría ser una entrada en LDAP en texto con formato (pues nativamente usa código binario):

dn: cn=Miguel Regueira,dc=elgrupoinformatico,dc=com

cn: Miguel Regueira

givenName: Miguel

sn: Regueira

telefono: +34 666 000 666

correo: miguel@elgrupoinformatico.com

responsable: cn=Pedro Delgado,dc=elgrupoinformatico,dc=com

objectClass: usuarioEmpresaIntranet

objectClass: usuarioEmpresa

objectClass: usuario

objectClass: top

Los nombres de atributos de cada línea son personalizables, pero en algunos casos es más intuitivo utilizar los habituales. Por ejemplo, en la primera línea:

dn: cn=Miguel Regueira,dc=example,dc=com

"dn" es el identificador de la entrada, "cn" corresponde a un nombre en la entrada y "dc" a los dominios de los que depende. Es decir, "Miguel Regueira" está dentro del dominio "elgrupoinformatico", y este a su vez forma parte de "com".

Sin embargo, otros nombres de atributo como "givenName" o "sn" podrían ser "nombreAsignado" y "apll" (apellido) si queremos aumentar la legibilidad.

Los "objectClass" nos dan datos adicionales, como que estamos ante una entrada de un usuario, que forma parte de la empresa y que tiene acceso a la Intranet, adaptándose a las diferentes organizaciones.

Esta entrada de un empleado podría estar al nivel más bajo de un directorio basado en LDAP, pues ya hemos visto que depende de dominios superiores. Es la base del funcionamiento de los directorios, que organizan la información de forma jerárquica y metódica. Podemos compararlos con una agenda telefónica, aunque con mayor complejidad.

La seguridad en LDAP

Dado que LDAP permite el acceso a diversos recursos, lo normal es que se quiera verificar la identidad de quién se conecta. Es posible hacerlo con una combinación de nombre de usuario y contraseña, o de manera externa.

En ese último caso, LDAP emplea un protocolo llamado SASL (Simple Authentication and Security Layer) para enviar los datos de acceso a otro servidor, que habitualmente usa la tecnología Kerberos. En resumen, la autorización la otorga un sistema independiente tras comprobar que los datos de acceso son correctos.

Solo tenemos que pensar en los problemas que generó el malware WannaCry y similares para darnos cuenta de que el acceso a las redes internas de las empresas es un tema muy delicado, y LDAP resulta importante, pues hace funcionar los permisos.

Active Directory, el sistema que "ata" a Windows Server

Un aspecto que genera dudas sobre LDAP es hasta qué punto lo podremos utilizar en un entorno con software Microsoft. Por desgracia, resulta un tema complicado, y muchas empresas que utilizan distribuciones de Linux en sus servidores necesitan también máquinas con Windows Server.

El objetivo es gestionar Active Directory, pues su implementación de LDAP tiene muchos "extras" que dificultan prescindir de las tecnologías propietarias (y sus costes de licencias). Al final, es un elemento problemático, pues obliga a usar Windows por compatibilidad, no porque ofrezca mayores funcionalidades frente a sus rivales.

Además, quienes opten por dominios Active Directory basados en LDAP no pueden usar Windows en versiones Home, sino que necesitan Windows Pro o Enterprise. Estas ediciones tienen un coste de licencia mayor, lo que aumenta el gasto total.

Teniendo claro qué es LDAP resulta más sencillo entender las redes de las empresas. Eso sí, siempre pensando LDAP es un protocolo, es decir, una especie de "lenguaje de comunicación", por lo que es necesario un sistema como Active Directory u OpenLDAP que lo aplique y haga reales sus capacidades, y también una base de datos asociada.

  • Ver Comentarios