Tema 3.10. Protocolo LDAP
Tema 3.10. Protocolo LDAP
Tema 3.10. Protocolo LDAP
1. Conceptos previos..................................................................................................................... 2
1.1. Los grupos de trabajo ........................................................................................................ 2
1.2. La estructura Cliente-Servidor ........................................................................................... 2
2. El protocolo LDAP ..................................................................................................................... 4
2.1. Conceptos básicos............................................................................................................. 4
2.2. Origen e influencias ........................................................................................................... 5
2.3. Visión general del protocolo............................................................................................... 5
2.4. Estructura de directorio...................................................................................................... 6
2.5. Consulta de datos .............................................................................................................. 8
2.6. Formato de intercambio de datos de LDIF ........................................................................ 8
2.7. URLs de LDAP................................................................................................................... 9
2.7. Estructura de nombres..................................................................................................... 10
2.8. Implementaciones ............................................................................................................ 10
2.9. Dominios .......................................................................................................................... 11
Microsoft introdujo el concepto de trabajo en grupo con Windows 3.11 para Trabajo en
Grupo y permitía establecer grupos que podían fácilmente ver y compartir recursos (la única
seguridad de la que estaba provisto era el uso de contraseñas para restringir el uso de
determinados recursos a usuarios específicos). Para localizar un recurso en la red se utilizaban
servicios de exploración.
Posteriormente se suministraron tres utilidades (Entorno de Red, Mis Sitios de Red y
Red), que permitían explorar la red e identificar recursos a los que conectarse.
1
Ver http://tools.ietf.org/html/rfc4510
Conectarse
Desconectarse
Buscar información
Comparar información
Insertar entradas
Cambiar entradas
Eliminar entradas
Un cliente inicia una sesión de LDAP conectándose a un servidor LDAP, por defecto en
el puerto TCP 389. El cliente luego envía una petición de operación al servidor, y el servidor
envía respuestas. Con algunas excepciones, el cliente no necesita esperar una respuesta
antes de enviar la siguiente petición, y el servidor puede responder en cualquier orden.
El cliente puede requerir las siguientes operaciones:
El protocolo accede a directorios LDAP, que siguen la edición de 1993 del modelo
X.500:
2
Abstract Syntax Notation One (notación sintáctica abstracta 1, ASN.1) es una norma para representar datos
independientemente de la máquina que se esté usando y sus formas de representación internas. Es un protocolo de
nivel de presentación en el modelo OSI.
3
Las Reglas de codificación básicas, o BER (Basic Encoding Rules), es uno de los formatos de codificación
definidos como parte del estándar ASN.1 para codificar información abstracta en un flujo de bits único, esto es, que
pueda ser interpretado en cualquier máquina de la misma manera. Las reglas, denominadas sintaxis de transferencia
en el contexto de ASN.1, especifican las secuencias de octetos exactas para codificar un elemento de datos dado.
Se debe tener cuidado con el hecho de que un nombre distinguido puede cambiar en el
tiempo de vida de una entrada, por ejemplo, cuando las entradas son movidas en el árbol. Para
hacer más confiables e identificar de manera no ambigua las entradas un UUID podría ser
proporcionado en el conjunto de los atributos operacionales de la entrada.
Una entrada, cuando es representada en el formato LDAP Data Interchange Format
(LDIF) (LDAP por sí mismo es un protocolo binario), podría ser la siguiente:
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 base64.
Un formato URL de LDAP existe para descubrir qué clientes soportan en variedad de
grados, y qué servidores retornan como referentes y referencias de continuación (ver RFC
4516):
ldap://host:port/DN?attributes?scope?filter?extensions
4
Un FQDN (Fully Qualified Domain Name) es un nombre que incluye el nombre del equipo y el nombre de dominio
asociado a ese equipo. Por ejemplo, dada la computadora llamada «serv1» y el nombre de dominio «bar.com», el
FQDN será «serv1.bar.com», a su vez un FQDN asociado a serv1 podría ser «post.serv1.bar.com».
Desde que un servidor LDAP puede devolver referencias a otros servidores para
efectuar nuevas peticiones que el servidor mismo no puede devolver, una estructura de
nombres para las entradas LDAP es requerida para que sea posible encontrar un servidor
alojando un nombre distinguido dado. Desde que una estructura ya existe en el DNS, los
nombres de alto nivel de los servidores a veces ofrecen nombres de DNS simulados, así como
se hacía en X.500.
Si una organización tiene el nombre de dominio example.org, su entrada de más alto
nivel en LDAP tendrá generalmente como nombre distinguido dc=example,dc=org (donde dc
significa componente de dominio). Si el servidor LDAP es también denominado
ldap.example.org, el nivel más alto de la organización de la URL del LDAP URL se convierte en
ldap://ldap.example.org/dc=example,dc=org.
Bajo el alto nivel, los nombres de entradas generalmente reflejan la estructura
organizacional interna o las necesidades, en lugar de nombres de DNS.
2.8. Implementaciones
Active Directory: Active Directory es el nombre utilizado por Microsoft (desde Windows
2000) como almacén centralizado de información de uno de sus dominios de
administración.
Un Servicio de Directorio es un depósito estructurado de la información de los diversos
objetos que contiene el Active Directory, en este caso podrían ser impresoras, usuarios,
equipos...
Bajo este nombre se encuentra realmente un esquema (definición de los campos que
pueden ser consultados) LDAP versión 3, lo cual permite integrar otros sistemas que
soporten el protocolo. En este LDAP se almacena información de usuarios, recursos de la
red, políticas de seguridad, configuración, asignación de permisos, etc.
Novell Directory Services: También conocido como eDirectory es la implementación de
Novell utilizada para manejar el acceso a recursos en diferentes servidores y
computadoras de una red. Básicamente está compuesto por una base de datos jerárquica
y orientada a objetos, que representa cada servidor, computadora, impresora, servicio,
personas, etc. entre los cuales se crean permisos para el control de acceso, por medio de
herencia. La ventaja de esta implementación es que corre en diversas plataformas, por lo
que puede adaptarse fácilmente a entornos que utilicen más de un sistema operativo.
iPlanet - Sun ONE Directory Server: Basado en la antigua implementación de Netscape,
iPlanet se desarrolló cuando AOL adquirió Netscape Communications Corporation y luego
conjuntamente con Sun Microsystems comercializaron software para servidores, entre
ellos el iPlanet Directory Server, su implementación de LDAP... Actualmente se denomina
Sun ONE Directory Server.
Red Hat Directory Server: Directory Server es un servidor basado en LDAP que centraliza
configuración de aplicaciones, perfiles de usuarios, información de grupos, políticas así
como información de control de acceso dentro de un sistema operativo independiente de
la plataforma.
Forma un repositorio central para la infraestructura de manejo de identidad, Red Hat
Directory Server simplifica el manejo de usuarios, eliminando la redundancia de datos y
automatizando su mantenimiento.
Apache Directory Server (ApacheDS): es un servidor de directorio escrito completamente
en Java por Alex Karasulu y disponible bajo la licencia de Apache Software, es compatible
con LDAPv3 certificado por el Open Group, soporta otros protocolos de red tal como
Kerberos y NTP, además provee Procedimientos Almacenados, triggers y vistas;
características que están presente en las Base de Datos Relacionales pero que no
estaban presentes en el mundo LDAP.
Open DS: Basado en los estándares LDAPv3 y DSMLv2, OpenDS surgió como un
proyecto interno de SUN, aunque posteriormente se puso a disposición de la comunidad.
Está desarrollado en JAVA y precisa de un entorno de ejecución (Java Runtime
Environment) para funcionar. Es multiplataforma.
2.9. Dominios
El dominio fue introducido por Microsoft para Windows NT y toma prestados conceptos
de los grupos de trabajo y de los servicios de directorio.
Los dominios son un sistema que permite dividir redes extensas en redes parciales
reducidas que simplifican el trabajo de la administración. Comprenden un grupo de
ordenadores, usuarios y recursos de la red que cuentan con una base de datos de seguridad
común.
De la misma manera que los grupos de trabajo, los dominios pueden ser administrados
usando una mezcla de controladores locales y centrales. Los dominios pueden ser
desarrollados fácilmente y con menos planificación que un servicio de directorio.