LDAP v.2
La comunidad de Internet, reconociendo la necesidad de un servicio como X.500
pero encarándalo con una infraestructura de red diferente (TCP/IP en vez de
OSI), diseño un nuevo protocolo basado en el protocolo DAP de X.500, llamado Lightweight
DAP, o LDAP. La RFC
1777 define lo que ahora se llama versión 2 del LDAP (o LDAP v2).
El objetivo de LDAP v2 era un protocolo que pudiera implementarse
fácilmente, con un enfoque especial en que permitiera construir clientes
pequeños y sencillos. Una forma de intentar conseguir la simplificación fue
usar muchas strings y minimizar siempre que fuera posible el uso de estructuras.
DNs, por ejemplo, era representado en el protocolo como strings, como lo eran
los nombres de los tipos de atributos y muchos valores de los atributos.
El protocolo consiste en las peticiones enviadas por el cliente al servidor,
a las que el servidir responde, aunque no necesariamente en el mismo orden en
que se enviarón las peticiones. Cada petición es etiquetada con una ID para
poder emparejar las peticiones y respuestas. El protocolo funciona sobre TCP o
UCP, aunque se usa más comunmente la versión TCP.
Como el foco eran los clientes, las comunidad LDAP también definió
estándars para la representación string de DNs (RFC
1779), filtros de búsqueda (RFC
1960), y síntaxis de atributos (RFC
1778), para un API basado en el lenguaje C (RFC
1823), y el formato de las URLs para acceder a servicios LDAP (RFC
1959).
Operaciones
La siguiente tabla lista las operaciones definidas en el LDAP v2.
| Operación |
Descripción |
| bind |
Usada para arrancar una conexión con el servidor LDAP. El LDAP es un
protocolo orientado a conexión. El cliente especifica la versión del protocolo
y la información de autentificación del cliente. |
| unbind |
Usada para terminar la conexión con el servidor LDAP. |
| search |
Usada para buscar en el directorio. El cliente especifica el punto de
entrada (objeto base) de la búsqueda, el ámbito de búsqueda (sólo el objeto,
sus hijos o el árbol que arranca en el objeto), y un
filtro
de búsqueda (RFC 1960).
También puede suministrar otra información para controlar la búsqueda, como
los nombres de los atributos a devolver y los límites de tamaño y tiempo de la
respuesta. Los resultados de la búsqueda consisten en entradas LDAP (y los
atributos solicitados) que satisfacen el filtro.
|
| modify |
Usada para modificar una entrada existente. El cliente especifica el nombre
de la entrada a modificar y una lista de las modificaciones. Cada modificación
consiste en un atributo e información sin importar si los valores van a ser
añadidos, eliminados o reemplazados. |
| add |
Usada para añadir una nueva entrada. El cliente especifica el nombre de la
nueva entrada y un conjunto de atributos. |
| delete |
Usada para eliminar una entrada existente. El cliente especifica el nombre
de la entrada a eliminar. |
| modify RDN |
Usada para cambiar la RDN del último componente de una entrada existente
(es decir, para asignar a la entrada un nuevo nombre en el mismo contexto). El
cliente especifica el DN para la entrada y el nuevo RDN. |
| compare |
Usada para comprobar si una entrada tiene una pareja de atributo/valor. El
cliente especifica el nombre de la entrada y el valor a comprobar. |
| abandon |
Usada para determinar petición de salida. |
LDAP v2 Comparado con el Estándar X.500
A un nivel muy alto, el LDAP v2 se parece mucho a X.500. Ambos definen un DIR
que consiste en entradas que tienen DNs. Cada entrada consiste en un conjunto de
atributos. En ambos directorios se puede buscar usando filros de búsqueda que
contienen (en el nivel estructural) más o menos los mismos elementos. Las
operaciones definidas por ambos protocoles (como la búsqueda) son muy
similares.
Por supuesto, existen muchas diferencias de implementación entre el x.500 y
el LDAO. La más notable, sus pilas de protocolos subyacentes son diferentes.
Los protocolos X.500 se sitúan en la capa de sesión/presentación de la pila
OSI, mientras que el LDAP se ejecuta sobre TCP. Además el estándar X.500 es
crompreensivo con detalles específicos para maximizar interoperabilidad en
interacciones cliente/servidor y servidor/servidor. Por el contrario, el
estándar LDAP v2, debido a sus objetivos, es mucho más mínimo.