LDAP: qué es, cómo funciona, usos y riesgos de seguridad

A medida que las empresas crecen, la necesidad de organizar los datos y los activos de los usuarios en una estructura jerárquica se vuelve fundamental para simplificar el acceso al almacenamiento de esos activos. LDAP permite a las organizaciones almacenar, administrar y proteger información sobre la organización, sus usuarios y activos.

En esta guía, explicaremos qué es LDAP, sus usos y cómo funciona. También discutiremos los niveles del directorio LDAP y los componentes de datos, ilustrando cómo es una herramienta esencial para administrar datos sobre organizaciones y usuarios por igual.

¿Qué es LDAP?

El Protocolo ligero de acceso a directorios (LDAP) es un protocolo de aplicación de código abierto que permite que las aplicaciones accedan y autentiquen información específica del usuario en los servicios de directorio.

LDAP es una versión ligera del Protocolo de acceso a directorios (DAP)

LDAP funciona tanto en redes públicas como en intranets privadas y en varios servicios de directorio, lo que lo convierte en el idioma más conveniente para acceder, modificar y autenticar información en cualquier directorio.

Los dos servicios de directorio más populares que se comunican con LDAP son:

  • Directorio Activo
  • OpenLDAP

Para comprender el valor de LDAP, considera la gran cantidad de datos necesarios solo para las tareas administrativas diarias.

Los empleados necesitan acceder periódicamente a nombres de usuario, contraseñas, direcciones de correo electrónico, terminales e impresoras para cumplir con sus tareas diarias.

Dicha información se almacena en directorios de la empresa y LDAP es el protocolo que conecta de manera eficiente a los usuarios y las aplicaciones con esta información.

Dado que LDAP se asigna a nombres de usuario y contraseñas, el protocolo también se puede utilizar para autenticar usuarios. Esto permite el inicio de sesión único (SSO), donde los usuarios solo necesitan iniciar sesión una vez para acceder a todos los archivos y aplicaciones protegidos.

Los datos y recursos que puede encontrar con LDAP incluyen archivos e información de usuario. Funciona con impresoras, computadoras y otros dispositivos conectados a través de Internet o la intranet de una empresa.

LDAP funciona con la mayoría de los servicios de directorio de proveedores, como Active Directory (AD). Con LDAP, compartir información sobre usuarios, servicios, sistemas, redes y aplicaciones desde un servicio de directorio a otras aplicaciones y servicios se vuelve más fácil de implementar.

Active Directory frente a LDAP

Un requisito previo esencial para comprender cómo funciona LDAP es comprender su relación con Active Directory.

LDAP y Active Directory no son lo mismo, trabajan juntos para conectar clientes a servidores.

LDAP es el idioma que comprende Microsoft Active Directory. Para acceder o autenticar cualquier dato almacenado en Active Directory, Exchange Server utiliza el protocolo LDAP para comunicarse con el servidor de destino.

Si tu organización usa computadoras con Windows, es probable que dependas de LDAP para garantizar la continuidad del negocio.

LDAP también es un protocolo multiplataforma, lo que significa que se puede utilizar para compartir información entre diferentes servicios de directorio a través de la red IP.

Active Directory puede conectarse en red con Unix / Linux, OSX y otros servidores que no sean de Windows a través del protocolo LDAP.

Los diferentes servicios de directorio que admiten LDAP se enumeran a continuación.

  • 389 servidor de directorio
  • Directorio Activo
  • Servidor de directorio Apache
  • Directorio abierto de Apple
  • eDirectory
  • Servidor de directorio de Red Hat
  • Directorio de Internet de Oracle
  • Servidor de directorio del sistema Sun Java
  • OpenDS
  • Directorio unificado de Oracle
  • IBM Tivoli Directory Server
  • Servicios de directorio de Windows NT (NTDS)
  • Servidor de directorio de ruta crítica
  • OpenLDAP
  • Lotus Domino
  • Directorio de Nexor
  • OpenDJ

LDAP es una herramienta para extraer y editar datos almacenados en Active Directory y otros proveedores de servicios de directorio compatibles. Cada cuenta de usuario en un AD tiene varios atributos, como el nombre completo y la dirección de correo electrónico del usuario. La extracción de esta información en un formato utilizable requiere LDAP.

LDAP extrae información de AD con una consulta simple basada en cadenas. LDAP también puede compartir la información extraída (como nombres de usuario y contraseñas) con dispositivos o aplicaciones conectadas.

El uso de LDAP elimina la necesidad de que los usuarios ingresen manualmente una cadena de consultas LDAP para recuperar información de AD. Por ejemplo, Microsoft Outlook es un programa de Windows habilitado para LDAP que ingresa consultas automáticamente para obtener la información que desea.

¿Cómo funciona?

Cuando un usuario o una aplicación solicita información de un servidor, se inicia la siguiente secuencia de alto nivel.

  • El cliente se conecta al Directory System Agent (DSA) a través del puerto TCP / IP 389 para comenzar una sesión LDAP.
  • Se establece una conexión entre el cliente y el servidor.
  • Los datos se intercambian entre el servidor y el cliente.

El proceso de intercambio de datos en el paso 3 varía según las operaciones LDAP específicas que se soliciten.

Para acceder a la información del directorio, un protocolo LDAP se comunica con un Agente del sistema de directorio (DSA), la base de datos que almacena información como nombres de usuario, contraseñas, etc.

Directory System Agent almacena datos en una estructura jerárquica, comenzando desde el objeto raíz y desplegándose en varios elementos en cada capa sucesiva.

Cada nivel subsiguiente se conoce como una ‘Clase de objeto’ y los elementos dentro de cada clase se conocen como ‘Objetos de contenedor’ ya que contienen otros objetos.

El esquema de directorio consta de múltiples atributos que identifican sus relaciones jerárquicas.

Las consultas LDAP están diseñadas para alinearse con la estructura jerárquica del Directory System Agent. Cuando se solicita una entrada, la consulta LDAP hace referencia al nombre distinguido (DN), que contiene la ruta completa del objeto.

Hay otros atributos LDAP, como el nombre distinguido relativo, que ayudan a clasificar con precisión cada elemento.

Tipos de operación

A continuación, se muestran algunos tipos básicos de operaciones en LDAP:

Agregar

La función te permite agregar nuevas entradas a la base de datos del servidor de directorios. Si el nombre agregado ya existe, el servidor no aceptará la entrada. En su lugar, entregará una notificación de «entryAlreadyExists». Los servidores compatibles con LDAP almacenarán los nombres agregados y otros atributos de acuerdo con los estándares de nombres prescritos para garantizar la uniformidad.

Enlazar (autenticación)

Cuando creas una sesión conectándote a un servidor LDAP, el estado de autenticación predeterminado de la sesión es anónimo. La función de enlace LDAP valida el estado de autenticación y lo cambia de anónimo. La vinculación puede ocurrir a través del método de autenticación Simple o SASL (Capa de seguridad y autenticación simple).

Desatar

Desvincula aborta las operaciones pendientes y finaliza sus conexiones. Puedes lograr lo mismo cerrando la conexión, pero se prefiere usar desvincular porque libera recursos que pueden permanecer asignados a la operación abortada.

Modificar

Los clientes LDAP utilizan la función de modificación para información editar ya almacenada en una base de datos. Solo se permiten tres tipos de modificaciones:

  • Añadiendo un nuevo valor a los datos
  • Reemplazar o sobrescribir un valor existente
  • Eliminar un valor existente

Buscar y comparar

Permite a los clientes buscar y leer entradas. Puedes buscar entradas según su nombre, tamaño, alcance, tipo y otros atributos. La función de comparación facilita la verificación de si una entrada con nombre tiene atributos específicos.

Borrar

Los clientes utilizan esta función para eliminar entradas del directorio. Ten en cuenta que la eliminación no se producirá a menos que el cliente envíe una solicitud de eliminación perfectamente compuesta al servidor. Algunas de las características que debe tener la solicitud de eliminación son:

  • El nombre de la entrada que desea borrar.
  • Controles de solicitud adjuntos.

¿Qué es la autenticación LDAP y cómo funciona?

Debido a que LDAP facilita las conexiones a bases de datos que almacenan credenciales confidenciales, el protocolo se puede utilizar para autenticar usuarios.

En un nivel alto, el proceso de autenticación se produce en 4 etapas después del envío de un nombre de usuario y una contraseña.

  • Se envía una solicitud de vinculación desde el cliente LDAP al servidor LDAP para iniciar el proceso de autenticación.
  • Se envía una comunicación de resultado de vinculación al cliente LDAP para confirmar que el proceso de autenticación ha comenzado.
  • El protocolo LDAP se utiliza para confirmar la existencia de cada credencial en el directorio LDAP y la combinación válida de cada entrada.
  • Una vez que se han autenticado las credenciales del usuario, se envía una operación de desvinculación al servidor LDAP para finalizar la conexión.
  • El acceso de usuario se concede o deniega.

Hay tres métodos diferentes para autenticar usuarios en LDAPv3:

  • Anónimo
  • Simple
  • SASL (Capa de seguridad y autenticación simple)

SAML es otro protocolo utilizado para la autenticación SSO, pero a diferencia de LDAP, su mecanismo de autenticación se extiende a la nube y otras aplicaciones web.

Autenticación anónima

La autenticación anónima es la menos segura porque las cuentas de usuario que se verifican se almacenan en una base de datos pública LDAP.

Autenticación simple

El mecanismo de autenticación simple solo se basa en combinaciones de nombre de entrada de directorio y contraseña que generalmente se entregan sin cifrar a través de texto sin formato, información que se puede interceptar fácilmente con un rastreador de red.

Esto crea un mayor riesgo de escalada de permisos, donde los ciberataques aprovechan las credenciales privilegiadas para acceder a datos confidenciales.

Además de proteger el acceso a la cuenta LDAP, agregar cifrado SSL a los datos de autenticación LDAP evitará que los rastreadores de red intercepten y comprometan los datos de las credenciales del usuario.

Autenticación SASL

SASL es el mecanismo más seguro para la autenticación LDAP. La autenticación SASL integra otros mecanismos de autenticación como TLS y Kerberos en el servidor LDAP.

El mecanismo de autenticación Kerberos utiliza criptografía para evitar que los ciberataques accedan a los datos de autenticación que viajan y los modifiquen.

La autenticación LDAP es compatible con las siguientes aplicaciones:

  • Jenkins
  • Docker
  • Open VPN
  • Linux Samba Servers

Componentes de datos LDAP

Varios componentes trabajan juntos para que LDAP complete su gran cantidad de tareas, especialmente cuando se trata de cómo consulta y muestra datos a los usuarios. Los más esenciales de estos componentes son:

Atributos

Los datos reales dentro de un sistema LDAP se almacenan como atributos. Cada atributo está asociado con un tipo de atributo que especifica cómo los clientes y el servidor de directorio deben interactuar con ese atributo. Además, los valores de atributo contienen la mayoría de los datos que los usuarios almacenan y acceden en los sistemas LDAP.

Entradas

Los atributos definen las características de un usuario o artículo, mientras que una entrada describe al usuario o artículo enumerando todos sus atributos bajo un nombre. Por sí solos, los atributos tienen funciones limitadas. Debes asociar un atributo con una entrada antes de poder utilizarlo por completo.

Árbol de información de datos (DIT)

Dentro de un sistema LDAP, los datos definidos por atributos representan solo una fracción de la información disponible de un objeto. La información restante se puede obtener a partir de la ubicación de la entrada dentro del sistema LDAP y las relaciones que sugieren su ubicación. Por ejemplo, si tienes una entrada para «artículos de inventario» y otra para «personas», los datos ingresados ​​debajo de cada una proporcionarán una mejor idea de lo que representa cada entrada.

Cada entrada en un sistema LDAP se configura como ramas en árboles de información de datos (DIT). Dado que cada entrada en un árbol LDAP puede simbolizar casi cualquier cosa, los usuarios utilizan principalmente entradas para mantener las cosas organizadas.

Esquemas

Schema es una construcción en la que las ObjectClasses relacionadas y las definiciones de atributos pertenecen a la misma categoría. Un DIT puede tener varios esquemas no relacionados para generar las entradas y los atributos que necesita.

¿Para qué se utiliza LDAP?

El protocolo LDAP puede definir un directorio que:

  • Almacene los datos del usuario en una ubicación central y accesible.
  • Asocie a esos usuarios con los recursos a los que pueden acceder.
  • Autenticar y autorizar a los usuarios a sus recursos asignados, que incluyen:
    • Aplicaciones técnicas: Jenkins, Docker, OpenVPN, la suite Atlassian y muchas otras se autentican mejor con LDAP.
    • Infraestructura del servidor: los servidores Linux tanto en las instalaciones como en la nube (como AWS) aprovechan LDAP para autenticar a los usuarios.
    • Servidores de archivos: los servidores de archivos como QNAP, Synology y FreeNAS admiten LDAP.
    • Equipo de red: aunque esto puede superponerse con el protocolo RADIUS, algunas organizaciones utilizan LDAP para acceder a la red a través de VPN, puntos de acceso WiFi y otros equipos de red.

Cuando se originó en LDAP, las funciones anteriores eran mucho más sofisticadas que otras opciones de administración de usuarios disponibles. A medida que el protocolo ganó popularidad, más recursos de TI se volvieron compatibles con LDAP y nuevas ofertas, incluido LDAP en la nube, otros protocolos de autenticación y servicios de directorio completo, entraron en escena para respaldar el acceso a esos recursos de TI.

Ahora, los administradores de TI pueden usar LDAP para autenticar máquinas y administrar el acceso a aplicaciones, redes, NAS y otros componentes heredados, tanto en las instalaciones como en la nube. Con algunos servicios de directorio en la nube como JumpCloud, pueden combinar esta función con otros protocolos para proporcionar a los usuarios acceso a prácticamente todos sus recursos de TI.

Cómo configurar LDAP

Los pasos de configuración de LDAP varían según la oferta de LDAP que estés utilizando, y los pasos dependen de gran medida de si estás utilizando un servidor LDAP en la nube o si estás creando uno por tu cuenta.

Sin embargo, antes de emprender cualquier camino, el primer paso para cualquier implementación de LDAP debe ser la planificación: tu equipo de TI debe pensar detenidamente cómo quiere organizar su directorio antes de implementar cualquier cosa.

Esto incluye qué recursos incluir en el directorio, cómo separar grupos de usuarios y asignar permisos, qué sistemas operativos necesitarás acomodar, cómo planear integrar a los trabajadores remotos, qué harás para garantizar disponibilidad cercana al 100%, cómo planea crecer tu organización y más.

La planificación inicial es fundamental para crear un directorio organizado que se adapte bien a tu entorno y esté bien posicionado para adaptarse al crecimiento y los cambios. Por ejemplo, si tienes una organización de 10 pero planeas expandirte significativamente, podría tener sentido dividir a tus empleados en grupos departamentales desde el principio para permitir un crecimiento organizado, incluso si cada departamento comienza con solo uno o dos usuarios.

El paso de planificación es especialmente crítico para las organizaciones que crean sus propios directorios; sin embargo, también ayuda a las organizaciones a comprender qué soluciones LDAP cubrirían mejor sus necesidades.

Después de planificar el diseño de tu directorio y elegir un proveedor LDAP (u optar por LDAP de código abierto), deberás configurar sus servidores LDAP.

Configuración de LDAP local

Si alojas tu propia instancia LDAP, deberás activar tu (s) servidor (es) LDAP. Los pasos para instalar y configurar tu directorio LDAP variarán según la instancia LDAP que utilices. OpenLDAP es quizás la instancia LDAP más popular del mercado, pero hay varios servidores LDAP para elegir.

Configuración de LDAP en la nube

Como mencionamos, la configuración y el mantenimiento de LDAP en la nube es mínimo, lo cual es una de las razones por las que muchas empresas lo eligen en el lugar de las opciones locales tradicionales. El paso del servidor para LDAP en la nube implica suscribirse a un servidor LDAP en la nube en el lugar de hacerlo tu mismo. Aún querrás planificar antes de elegir una solución LDAP, pero la mayoría de los proveedores ofrecen configuración y administración de directorios a través de una GUI fácil de usar que facilite las modificaciones en el futuro.

Si bien no hay muchos servidores LDAP gratuitos (incluido el hardware) para elegir, existen varias opciones de software LDAP gratuitas disponibles. Los exploraremos a continuación.

Proveedores de LDAP

Sin LDAP, la TI generalmente carece de visibilidad de las cuentas y la actividad de los usuarios y administra manualmente el acceso a los recursos, creando un modelo de acceso e identidad (IAM) descentralizado y desorganizado que puede generar redundancias, fricciones y riesgos de seguridad. Cuando las organizaciones se dan cuenta de que el coste de implementar una solución es menor que el coste de la administración manual que requiere mucho tiempo y los riesgos asociados con ella, a menudo comienzan a considerar LDAP. Hay algunas soluciones LDAP principales que la mayoría de las empresas consideran:

Active Directory (AD)

AD utiliza LDAP y Kerberos para autenticar a los usuarios en los recursos de TI. Como producto de Microsoft, es más adecuado para entornos basados ​​en Windows. Para usar AD, los administradores de TI deben pagar la licencia de Windows Server, que incluye AD. Esto representa el modelo de licencia tradicional que las organizaciones de TI conocen bien con los productos de Microsoft. Finalmente, AD requiere alguna forma de acceso remoto, como una VPN o SD-WAN, para autenticar a los usuarios remotos en los recursos locales. Azure Active Directory ha surgido recientemente como una extensión de AD, pero carece de verdaderas capacidades LDAP nativas.

OpenLDAP

Como se dijo anteriormente, la descarga de OpenLDAP no cuesta nada. Sin embargo, los costes significativos rodean la configuración y la administración continua de la infraestructura. Debido a sus raíces de código abierto, OpenLDAP funciona muy bien con sistemas operativos basados ​​en Linux y Unix, por lo que se encuentra en muchos entornos DevOps. Al igual que AD, necesitarás una VPN para autenticarte en los recursos locales.

LDAP en la nube

LDAP basado en la nube es independiente del proveedor y funciona con una amplia variedad de recursos de TI. Con una plataforma de directorio en la nube, no hay necesidad de una VPN (aunque todavía son compatibles); en cambio, un agente ligero en el dispositivo del usuario establece una conexión TLS segura al comienzo de cada sesión, lo que permite a los usuarios conectarse de forma segura a tus recursos LDAP sin una VPN. Los servicios LDAP en la nube a menudo incluyen protocolos adicionales en su oferta, por lo que una herramienta puede otorgar a los usuarios acceso a prácticamente todos sus recursos.

Pros y contras de LDAP

Dentro de las ventajas de LDAP están:

  • Código abierto: a menudo no cuesta nada descargar y probar rápidamente OpenLDAP.
  • Estandarizado: LDAP fue ratificado como estándar del Grupo de trabajo de ingeniería de Internet (IETF) en 1997 con RFC 2251. Como tal, la industria en general es compatible con LDAP y continuará haciéndolo.
  • Flexible: los desarrolladores y los administradores de TI utilizan la autenticación LDAP para muchos casos de uso diferentes, incluida la autenticación de aplicaciones y servidores remotos. Y debido a que se ha utilizado de tantas formas diferentes, existe una comunidad en torno al protocolo que ayuda a las personas a aprovecharlo al máximo.
  • Dispositivo-Agnóstico: Por naturaleza, LDAP es compatible con diferentes sistemas operativos y dispositivos. Sin embargo, diferentes ofertas de LDAP pueden limitar esta flexibilidad; AD, por ejemplo, está centrado en Windows y, a menudo, requiere complementos para funcionar sin problemas con sistemas operativos adicionales.
  • Seguro: en su instancia original, LDAP se transmite en texto sin cifrar; sin embargo, existen opciones para cifrar las comunicaciones LDAP, ya sea sobre SSL (LDAPS) o sobre TLS (STARTTLS). STARTTLS es la opción ideal y es muy segura, con LDAPS en segundo lugar.

Entre las desventajas de LDAP destacamos:

  • Edad: LDAP es un protocolo más antiguo. Los protocolos de autenticación más nuevos, como SAML, están diseñados para entornos de TI modernos y avanzados en la nube que utilizan aplicaciones web.
  • Instalaciones: LDAP se configura tradicionalmente en las instalaciones con un servidor OpenLDAP y no es una tarea fácil. Para las organizaciones que se trasladan a la nube, tener que configurar un mecanismo de autenticación local que se conecte a los recursos de TI de la nube no es lo ideal.
  • Experiencia: la configuración y el mantenimiento de LDAP generalmente requiere un experto. Las personas con este nivel de conocimientos técnicos pueden ser difíciles de encontrar y costosas.
  • Aumento significativo: cuanto más grande sea tu organización, más difícil será iniciar un nuevo directorio. Debido a que los directorios son necesarios una amalgama de todos los componentes de tu organización, puede ser un desafío crear un nuevo directorio desde cero o pasar de un directorio a otro. Afortunadamente, algunas plataformas de directorios en la nube como JumpCloud tienen una guía de configuración y pueden integrarse con directorios existentes como AD, por lo que las grandes empresas que buscan aprovechar LDAP en la nube pueden hacerlo sin dar un giro total.

Riesgos de ciberseguridad del protocolo LDAP

Debido a que LDAP facilita las conexiones a recursos privados, existen riesgos de ciberseguridad asociados con este protocolo, siendo los más críticos las inyecciones de LDAP.

Una inyección LDAP es un tipo de ciberataque en el que se inyecta código a través de una aplicación web para acceder a información confidencial en un directorio LDAP.

El código inyectado contiene metacaracteres LDAP que modifican las solicitudes legítimas de los clientes LDAP para lograr objetivos maliciosos.

Una inyección LDAP podría resultar en una violación de datos, escalada de privilegios de usuario o secuestro de cuenta.

Las inyecciones de LDAP son posibles cuando los servidores no validan la legitimidad de las solicitudes de los clientes LDAP, lo que permite a los ciberatacantes comunicarse libremente con los servidores LDAP.

Similar a un ataque de enumeración, la inyección LDAP podría usarse para confirmar identificadores y atributos en una base de datos.

Cómo prevenir las inyecciones de LDAP

Las inyecciones de LDAP se pueden mitigar con los siguientes controles de seguridad.

  • Aplicar la validación de entrada del lado del servidor: todas las entradas deben validarse con una lista de caracteres y cadenas permitidos.
  • Escape de cadenas de entrada controladas por el usuario: esto convertirá las entradas maliciosas en valores de cadena y no en predicados LDAP.
  • Implementar el principio de privilegios mínimos: al proteger la cuenta LDAP necesaria para vincular un directorio, las consultas LDAP no se ejecutarán sin autorización.