LDAP (Lightweight Directory Access Protocol) is an application protocol that enables clients to search, read, and modify entries in hierarchical directory services over IP networks, commonly used for user authentication and identity data lookup across enterprise systems. The protocol operates over TCP using a client-server model where clients connect to directory servers, authenticate via bind requests, and send operations such as search, compare, add, modify, or delete; however, security and operational reliability depend critically on proper configuration including encrypted connections (TLS), least-privilege service accounts, and redundant servers to prevent credential exposure, injection attacks, and authentication outages. Organizations must address common operational challenges such as certificate validation failures, wrong search parameters, service account lockouts, and single-server dependencies to maintain stable authentication and identity verification across VPN gateways, web applications, mail systems, and network devices.
Cómo funciona LDAP
LDAP utiliza un modelo cliente-servidor en el que un cliente establece una conexión con un servidor de directorio, se autentica y, a continuación, envía operaciones a las que el servidor responde con resultados. Los datos del directorio se organizan en forma de árbol de entradas, cada una de las cuales se identifica mediante un nombre distinguido.
- Conexión: El cliente abre una conexión TCP con el servidor de directorio, normalmente en el puerto 389, o en el puerto 636 cuando se utiliza TLS desde el inicio.
- Proteja la sesión: en el puerto 389, el cliente puede ejecutar la operación StartTLS para actualizar la conexión a una cifrada antes de enviar las credenciales.
- Enlace: El cliente envía una solicitud de enlace para autenticarse. Un enlace simple envía un nombre distinguido y una contraseña, mientras que los enlaces SASL admiten otros mecanismos. Un enlace anónimo no envía credenciales.
- Operaciones de envío: el cliente envía solicitudes como búsqueda, comparación, adición, modificación, eliminación o modificación del DN. Una búsqueda especifica una entrada base, un ámbito, un filtro y los atributos que se deben devolver.
- Recibir resultados: El servidor devuelve las entradas coincidentes y un código de resultado para cada solicitud. Pueden quedar pendientes varias solicitudes en una misma conexión.
- Desvinculación: el cliente envía una solicitud de desvinculación y la conexión se cierra.
Los pasos anteriores no abordan cómo los clientes localizan los servidores ni cómo se mantiene la coherencia de los datos. Los clientes suelen localizar los servidores a través de registros SRV del DNS, y los servidores de directorio suelen replicar los datos entre sí, aunque la replicación no forma parte del protocolo básico. El acceso a las entradas y a los atributos se rige por las reglas de control de acceso del lado del servidor.
Problemas habituales con LDAP
Las aplicaciones configuradas para el puerto 389 sin StartTLS envían el DN de enlace y la contraseña sin cifrar, lo que queda reflejado en las capturas de paquetes y las auditorías. Cambia a StartTLS o al puerto 636 y rechaza los enlaces simples en sesiones desprotegidas.
Los clientes notifican errores como «emisor no fiable» o «discrepancia de nombre» cuando el certificado del servidor de directorio está firmado por una CA en la que el cliente no confía, ha caducado o carece del nombre de host utilizado en la conexión. Una causa frecuente es conectarse mediante la dirección IP en lugar del nombre del certificado.
Una búsqueda no devuelve ninguna entrada o devuelve entradas erróneas porque la base de búsqueda, el ámbito o el filtro no coinciden con el árbol del directorio. El inicio de sesión falla aunque las credenciales sean correctas, a menudo tras una reestructuración del directorio.
Una cuenta de enlace de aplicación con una contraseña caducada o modificada realiza repetidos intentos y acaba bloqueándose, lo que impide cualquier inicio de sesión que dependa de ella. La supervisión de los fallos de enlace de la cuenta de servicio permite detectar este problema a tiempo.
Si los clientes apuntan a un único servidor de directorio, un reinicio o un fallo de red bloqueará los inicios de sesión en todas partes. Utiliza varios servidores o un nombre con equilibrio de carga, y asegúrate de que los registros DNS correspondientes se resuelvan correctamente.