LDAP v.3
El LDAP v3 (RFC 2251) está
diseñado para corregir algunas de las limitaciones del LDAP v2 en las áreas de
internacionalización, autentificación, remisión, y despliegue. También
permite que se añadan nuevas características la protocolo sin tener que
cambiarlo. Esto se hace usando extensiones y controles.
Internacionalización
La internacionalización se corrige mediante el conjunto de caracteres
internacionales (ISO 10646) para representar elementos que son strings (como una
DNs). La Version 3 también se diferencia de la versión 2 en que usa UTF-8 para
codificar los strings.
Autentificación
El LDAP v2 soportaba tres tipos de autentificaciones: anónima, simple (password
de texto claro), y Kerberos v4.
El LDAP v3 usa el marco de trabajo de autentificación "Simple
Authentication and Security Layer (SASL)" (RFC
2222) para permitir utilizar diferentes mecanismos de autentificación con
el LDAP. SASL especifica un protocolo de desafío-respuesta en el que se
intercambian datos entre el cliente y el servidor para propósitos de
autentificación.
Actualmente hay definidos varios mecanismos SASL:
DIGEST-MD5,
CRAM-MD5,
Anonymous,
External,
S/Key,
GSSAPI, y
Kerberos v4.
Un cliente LDAP v3 puede usar cualquiera de estos mecanismos SASL,
suponiendo que el servidor LDAP v3 los soporte. Además, se pueden usar nuevos
mecanismos (todavía-no-definidos) sin tener que cambiar el LDAP.
Remisiones
Una remisíon (referral)
es información que un servidor envía de vuelta al cliente indicando que la
información solicitada puede encontrarse en otra localización (posiblemente en
otro servidor). En LDAP v2, se suponía que los servidores manejaban la
remisiones y no las devolvían al cliente. Esto es porque manejar las remisiones
puede ser muy complicado y por lo tanto resultaría en clientes
más-complicados. Como los servidores eran construidos y desplegados, las
remisiones se encontraron útiles, pero no muchos servidores soportan el manejo
de remisiones en el lado del servidor. Por eso una forma de reparar el protocolo
es permitir que se devuelvan las remisiones. Esto se hace situando la remisión
dentro de un mensaje de error de una respuesta de error de "resultado
parcial".
El LDAP v3 tiene soporte explícito para remisiones y permite a los
servidores devolver remisiones directamente al cliente.
Despliegue
Un protocolo común como el LDAP es útil para asegurar que todos los clientes y
servidores del directorio "hablan el mismo lenguaje". Cuando muchas y
diferentes aplicaciones clientes y servidores de directorios se despliegan en
una red, también es útil para todas estas entidades hablar sobre los mismos
objetos. Por ejemplo, si las aplicaciones App1 y App2 necesitan
asociar datos con un usuario, tiene sentido que el directorio tenga una noción
común de usuario para que ámbas aplicaciones puedan usarlo en vez de que cada
una haga su propia definición.
Un esquema de directorio especifica, entre otras cosas, los tipos de
objetos que el directorio puede contener y la obligatoriedad u opcionalidad de
los atributos de cada uno de los tipos de objetos que puede tener. El LDAP v3
teine un esquema (RFC 2252
y RFC 2256) basado en el
estándar X.500 para objetos comunes encontrados en la red, como países,
localidades, organizaciones, usuarios/personas, grupos y dispositivos. También
define una forma para que una aplicación cliente pueda acceder al esquema del
servidor para poder encontrar los tipos de objetos y atributos que soporta un
servidor particular.
El LDAP v3 además define un conjunto de síntaxis de representación de
valores de atributos (RFC 2252).
Extensiones
Además del repertorio de operaciones predefinidas como "search" y
"modify", el LDAP v3 define una operación "extended".
Esta operación toma una petición como argumento y devuelve una respuesta. La
respuesta contiene un identificador que indentifica la petición y los
argumentos de la respuesta. La respuesta contiene el resultado de la petición
realizada. La pareja de operaciones "extendidas" petición/respuesta
es conocida como extensión. Por ejemplo, puede haber una extensión para
Start TLS, que es una petición del cliente para que el servidor active el
protocolo Start TLS.
Estas extensiones pueden ser estándars (definidas por la comunidad LDAP) o
propietarias (definidas por un vendedor de directorio particular).
Controles
Otra forma de añadir nuevas caracterísiticas es usar un control. El
LDAP v3 permite modificar el comportamiento de cualquier operación a través
del uso de controles. Se puede enviar cualquier número de controles junto una
operación, y se puede devolver cualquier número de controles con su resultado.
Por ejemplo, podemos envíar un control Sort junto con una operación
"search" que le diga al servidor que ordene los resultados de acuerdo
al atributo "name".
Cómo las extensiones, los controles pueden ser estándars o propietarios.
Diferencias Adicionales
| Operación/Característica |
Descripción |
| bind |
La operación "bind" es opcional y puede enviarse varias veces
durante una sesión. Si un cliente pide que una operación se realice sin hacer
una unión explícita, el cliente es tratado como "anónimo". El
cliente también puede enviar una operación "bind" en el medio de una
sesión para cambiar las credenciales del cliente (sin enviar primero una
operación "unbind"). |
| modify DN |
La operación "modify DN" nos permite renombrar una entrada a otra
parte del espacio de nombres. (Es decir, no estamos restringidos al mismo
contexto, como en el caso del LDAP v2). El cliente especifica la DN de la
entrada, la nueva RDN, y la DN (opcional) del nuevo padre de la nueva RDN. Si no
se especifica la DN opcional del nuevo padre, se usa la entrada del padre
original. |
| filtro de búsqueda |
El LDAP v3 define una representación de filtro de búsqueda actualizado (
RFC 2254)
que soporta el conjunto de caracteres ISO 10646, soporta
correspondencias extensibles, y usa la codificación UTF-8.
|
| atributos operacionales |
Los atributos operaciones los mantienen los servidores para
propósitos administrativos. No son visibles para las aplicaciones cliente a
menos que dichas aplicaciones los soliciten explícitamente. Se usan para
mantener información como sellos de fecha y subentradas de subesquemas
(que es un puntero a la información de esquema sobre la entrada). El LDAP v3
define estos atributos operacionales y entradas de subesquema y permite a los
clientes acceder a ellos. |
| URL LDAP |
El LDAP v3 define un formato de URL LDAP (RFC
2255) para soportar extensiones.
|
LDAP v3 Comparado con el Estándard X.500
El LDAP v3 tiene muchas más caracterísitcas que el LDAP v2 y por lo tanto
se separa de uno de los objetivos originales del LDAP v2, tener clientes
pequeños y sencillos. El LDAP v3 soporta un mayor subconjunto de
características del X.500 que el LDAP v2.