LDAP
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 14 de marzo de 2021; las comprobaciones requieren
9 ediciones .
LDAP ( Protocolo ligero de acceso a directorios en inglés - “ protocolo ligero de acceso a directorios ”) es un protocolo de capa de aplicación para acceder al servicio de directorio X.500 , desarrollado por IETF como una versión ligera del protocolo DAP desarrollado por ITU-T . LDAP es un protocolo relativamente simple que utiliza TCP/IP y permite la autenticación ( bind ), la búsqueda ( search ) y la comparación ( compare ), así como operaciones para agregar, modificar o eliminar entradas . Normalmente, el servidor LDAP acepta conexiones entrantes en el puerto 389 utilizando los protocolos TCP o UDP . SSL : las sesiones LDAP encapsuladas suelen utilizar el puerto 636.
Cada entrada en el directorio LDAP consta de uno o más atributos y tiene un nombre único (DN - English Distinguished Name ). El nombre único puede verse, por ejemplo, de la siguiente manera: "cn=Ivan Petrov,ou=Employees,dc=example,dc=com" [1] . Un nombre único consta de uno o más nombres distintivos relativos (RDN ) separados por una coma . El nombre exclusivo relativo tiene el formato AttributeName=value . No pueden existir dos entradas con los mismos nombres únicos relativos en el mismo nivel de directorio. Debido a esta estructura, el nombre único de una entrada en un directorio LDAP se puede representar fácilmente como un árbol.
Una entrada solo puede constar de aquellos atributos que se definen en la descripción de la clase de entrada (clase de objeto ), que, a su vez, se combinan en esquemas ( schema ). El esquema define qué atributos son necesarios para una clase determinada y cuáles son opcionales. El esquema también define el tipo y las reglas para comparar atributos. Cada atributo de entrada puede almacenar varios valores.
Estándares
El protocolo LDAP se define en los siguientes RFC :
- RFC 4510 - Protocolo ligero de acceso a directorios (LDAP): hoja de ruta de especificaciones técnicas (reemplaza a RFC 3377 )
- RFC 4511 - Protocolo ligero de acceso a directorios (LDAP): el protocolo
- RFC 4512 - Protocolo ligero de acceso a directorios (LDAP): modelos de información de directorio
- RFC 4513 - Protocolo ligero de acceso a directorios (LDAP): métodos de autenticación y mecanismos de seguridad
- RFC 4514 - Protocolo ligero de acceso a directorios (LDAP): Representación de cadenas de nombres distinguidos
- RFC 4515 - Protocolo ligero de acceso a directorios (LDAP): Representación de cadenas de filtros de búsqueda
- RFC 4516 - Protocolo ligero de acceso a directorios (LDAP): Localizador uniforme de recursos
- RFC 4517 - Protocolo ligero de acceso a directorios (LDAP): sintaxis y reglas de coincidencia
- RFC 4518 - Protocolo ligero de acceso a directorios (LDAP): preparación de cadenas internacionalizadas
- RFC 4519 - Protocolo ligero de acceso a directorios (LDAP): esquema para aplicaciones de usuario
- RFC 4520 (también conocido como BCP 64): Consideraciones de la Autoridad de números asignados de Internet (IANA) para el Protocolo ligero de acceso a directorios (LDAP) (reemplaza a RFC 3383 )
- RFC 4521 (también conocido como BCP 118): consideraciones para el protocolo ligero de acceso a directorios (LDAP): extensión
Además del protocolo, existen estándares internacionales de primer nivel que describen todo lo relacionado con el modelo de integración del sistema y el directorio (Directorio), al que se accede mediante LDAP y DAP:
- Recomendación UIT-T X.200 (1994) | ISO/IEC 7498-1:1994, Tecnología de la información — Interconexión de sistemas abiertos — Modelo de referencia básico: El modelo básico.
- Recomendación UIT-T X.500 (2019) | ISO/IEC 9594-1:2020, Tecnología de la información - Interconexión de sistemas abiertos - El directorio: descripción general de conceptos, modelos y servicios.
- Recomendación UIT-T X.501 (2019) | ISO/IEC 9594-2:2020, Tecnología de la información - Interconexión de sistemas abiertos - El directorio: Modelos.
- Recomendación UIT-T X.509 (2019) | ISO/IEC 9594-8:2020, Tecnología de la información. Interconexión de sistemas abiertos. El directorio: marcos de certificados de atributos y claves públicas.
- Recomendación UIT-T X.511 (2019) | ISO/IEC 9594-3:2020, Tecnología de la información - Interconexión de sistemas abiertos - El directorio: Definición de servicio abstracto.
- Recomendación UIT-T X.518 (2019) | ISO/IEC 9594-4:2020, Tecnología de la información — Interconexión de sistemas abiertos — El directorio: Procedimientos para operación distribuida.
- Recomendación UIT-T X.519 (2019) | ISO/IEC 9594-5:2020, Tecnología de la información - Interconexión de sistemas abiertos - El directorio: Especificaciones de protocolo.
- Recomendación UIT-T X.520 (2019) | ISO/IEC 9594-6:2020, Tecnología de la información. Interconexión de sistemas abiertos. El directorio: tipos de atributos seleccionados.
- Recomendación UIT-T X.521 (2019) | ISO/IEC 9594-7:2020, Tecnología de la información - Interconexión de sistemas abiertos - El directorio: clases de objetos seleccionados.
- Recomendación UIT-T X.525 (2019) | ISO/IEC 9594-9:2020, Tecnología de la información - Interconexión de sistemas abiertos - El directorio: replicación.
Descripción funcional del protocolo
El protocolo LDAP define las siguientes operaciones para trabajar con el Directorio:
- Operaciones de conexión/desconexión
- Enlace ( bind ): le permite asociar un cliente con un objeto de directorio específico (real o virtual) para ejercer el control de acceso para todas las demás operaciones de lectura/escritura. Para poder trabajar con el Directorio, el cliente debe estar autenticado como una entidad cuyo Nombre Distinguido se encuentra en el espacio de nombres descrito por el Directorio. En la solicitud de operación de vinculación, es posible que el cliente no especifique un nombre distinguido, en cuyo caso la conexión se realizará con el alias anónimo especial (generalmente algo así como una cuenta de invitado con derechos mínimos)
- Desvincular ( unbind ): permite que el cliente cambie a la autenticación con un nuevo nombre distinguido dentro de una sesión de conexión del servidor LDAP. El comando de desvinculación solo es posible después de autenticarse en el servidor mediante el enlace; de lo contrario, la llamada de desvinculación devuelve un error.
- Buscar ( búsqueda ) - lectura de datos del Directorio. La operación es compleja, toma muchos parámetros como entrada, entre los cuales los principales son:
- Base de búsqueda ( baseDN ): rama DIT desde la que comienza la búsqueda de datos
- Profundidad de búsqueda ( alcance ): puede tener valores (en orden creciente de alcance): base, uno, sub
- base - buscar directamente en el nodo - base de búsqueda
- uno: busca en todos los nodos que son descendientes directos de la base en la jerarquía, es decir, que se encuentran un nivel por debajo de ella
- sub - búsqueda en toda el área subyacente a la base de búsqueda (baseDN)
- El filtro de búsqueda ( searchFilter ) es una expresión que define los criterios para seleccionar objetos del catálogo que se encuentran dentro del ámbito de búsqueda especificado por el parámetro de ámbito. La expresión del filtro de búsqueda está escrita en notación polaca (prefijo) , que consta de operadores y operandos lógicos (booleanos), que a su vez son operadores internos para hacer coincidir valores de atributos LDAP (en el lado izquierdo) con expresiones (en el lado derecho) utilizando el signo igual.
Los operadores lógicos están representados por un "conjunto" estándar: & ("Y" lógico), | ("O" lógico) y ! (lógico "NO").
Ejemplo de filtro de búsqueda[ ¿dónde? ] :
(&(!(entryDN:dnSubtreeMatch:=dc=Piter,dc=Rusia,ou=Personas,dc=ejemplo,dc=com))(objectClass=sambaSamAccount)
(|(sn=Lazar*)(uid=Nakhims*) ))
- Operaciones de modificación: le permiten cambiar datos en el Catálogo, mientras que el concepto de modificación incluye tanto agregar, eliminar y mover registros como un todo, así como editar registros a nivel de sus atributos. Subtipos de modificación:
- Agregar ( agregar ) - agregar un nuevo registro
- Borrar ( eliminar ) — borrar un registro
- Modificación RDN ( modrdn ) - mover/copiar entrada
- Modificación de registro ( modify ) — permite editar un registro a nivel de sus atributos,
- agregar un nuevo atributo o un nuevo valor de un atributo multivaluado (agregar)
- borrando un atributo con todos sus valores (delete)
- reemplazar un valor de atributo con otro (reemplazar)
- así como aumentar (disminuir) el valor del atributo como parte de una operación atómica (incremento)
- Operación de comparación ( comparar ): permite que un nombre distinguido específico compare el atributo seleccionado con el valor dado
Operación Solicitud de Oportunidad
El estándar LDAP define una operación especial que permite a los clientes obtener información sobre las versiones de protocolo compatibles con el servidor y las capacidades del servidor LDAP. Este comando es un complemento (extensión) para la operación de búsqueda y se ejecuta con la siguiente combinación de los parámetros de esta última:
- BIND anónimo
- base de búsqueda baseDN especificada como "" (cadena vacía)
- La profundidad de búsqueda del alcance se especifica como base
- Filtro de búsqueda: (objectClass=*)
- Lista de atributos solicitados: ya sea una enumeración explícita o " + " ( ¡ ADVERTENCIA ! " * " no mostrará los valores de los atributos del servicio que contienen toda la información útil)
Por ejemplo, al usar el cliente LDAP de la distribución OpenLDAP , el comando de consulta de capacidad podría verse así:
ldapsearch -x -H ldap://host:port -LLL -b "" -s base '(objectClass=*)' supportedControls supportedCapabilities
Operación de consulta de esquema
Para solicitar información sobre el esquema actual de un directorio LDAP, primero debe ejecutar una operación de capacidades de consulta obteniendo el valor del atributo subschemaSubentry .
ldapsearch -x -H ldap://host:port -LLL -s base -b "" '(objectClass=*)' subschemaSubentry
El valor resultante se utiliza como nombre distinguido de la base de búsqueda ( baseDN ) en la operación de consulta de esquema, que se puede describir como:
- BIND anónimo o completo. La mayoría de los servidores de directorio admiten la consulta de esquemas sin vincularla primero, pero hay excepciones (como Active Directory );
- El baseDN base de búsqueda es igual al valor del atributo subschemaSubentry devuelto por la operación de consulta de capacidad ;
- La profundidad de búsqueda del alcance se especifica como base ;
- Filtro de búsqueda: (objectClass=*) ;
- Lista de atributos solicitados: la enumeración explícita de atributos (attributeTypes, objectClasses) es posible para todos los servidores de directorio, en el caso de OpenLDAP y algunos otros (OpenDS, ApacheDS, etc.) es posible especificar "+";
Por ejemplo, al usar el cliente LDAP de la distribución OpenLDAP , la operación de consulta de esquema podría verse así:
ldapsearch -x -H ldap://host:port -LLL -s base -b "cn=Subschema" '(objectClass=*)' ldapSyntaxes matchingRules
Implementaciones
Lado del servidor
LDAP es un estándar ampliamente utilizado para acceder a los servicios de directorio. De las implementaciones abiertas distribuidas libremente, el servidor OpenLDAP es el más conocido , de las propietarias, el soporte de protocolo está disponible en Active Directory , un servicio de directorio de Microsoft , diseñado para centralizar la administración de la red de Windows . El servidor IBM Lotus Domino también incluye un servicio LDAP [2] [3] . Otras grandes empresas también ofrecen sus implementaciones de servicios de directorio que soportan LDAP como protocolo de acceso, por ejemplo, Novell y Sun - OpenDS y, posteriormente, OpenDJ.
La lista de los servidores LDAP más famosos de la actualidad:
- OpenLDAP
- ForgeRock OpenDJ
- Directorio electrónico de Novell
- Apple Open Directory (una bifurcación del proyecto OpenLDAP)
- Directorio activo de Microsoft
- Samba4 LDAP (implementación OpenSource de MS AD)
- Servidor de directorio RedHat
- 389 Directory Server (esencialmente una versión de prueba del anterior)
- Servidor de directorio de Oracle
- Servidor de directorio Apache
- Servidor de directorio IBM Tivoli
- IBM Domino LDAP
- CommuniGate LDAP
Lado del cliente
Los clientes LDAP son libretas de direcciones de clientes de correo y back-end de varios servicios de red (DNS, SMTP, Samba, UTS, etc.).
Véase también
Notas
- ↑ Descripción de los parámetros LDAP. Archivado el 31 de mayo de 2011 en Wayback Machine .
- ↑ El esquema LDAP de Domino (enlace descendente) . Consultado el 31 de octubre de 2010. Archivado desde el original el 8 de junio de 2013. (indefinido)
- ↑ Guía de configuración de LDAP de Lotus Domino (enlace descendente) . Consultado el 31 de octubre de 2010. Archivado desde el original el 4 de marzo de 2016. (indefinido)
Enlaces
Recursos
Servidores
Clientes
Interfaces de programación (API)
esquemas URI |
---|
Oficial |
|
---|
no oficial |
|
---|