Introducción al X.500
El servicio de directorio X.500 es un servicio de directorio global. Sus
componentes cooperan para manejar información sobre objetos como países,
organizaciones, personas, máquinas, etc en un ámbito mundial. Proporciona la
capacidad de buscar información por el nombre (un servicio de páginas blancas)
y navegar y buscar información (un servicio de páginas amarillas).
La información está contenida en un "directory information base"
(DIB). Las entradas en el DIB se ordenan en una estructura de árbol llamada
"directory information tree" (DIT). Cada entrada es un objeto
nombrado y consiste en un conjunto de atributos. Cada atributo tiene un tipo de
atributo definido y uno o más valores. El esquema de directorio define la
obligatoriedad u opcionalidad de los atributos para cada clase de objeto
(llamando "clase objeto"). Cada objeto nombrado podría tener
una o más clases objeto asociadas con él.
El espacio de nombres X.500 es del tipo árbol. Una entrada es identificada
de forma no ambigua mediante un nombre distinguido (DN). Un nombres distinguido
es la concatenación de los atributos seleccionados desde cada entrada, llamada nombre
relativo distinguido (RDN), en el árbol un path desde la raíz hasta la
entrada nombrada.
Lo usuarios del directorio X.500 podrían (sujetos al control de acceso)
interrogar y modificar las entradas y los atributos del DIB.
Convenciones de Nombrado
Aunque los conceptos de nombres distinguidos y nombres distinguidos relativos
son el corazón del modelo X.500, el propio estándar x.500 no define
representaciones string para los nombres. Lo que se comunica entre los
componentes X.500 es la forma estructural de los nombres. El razonamiento que
hay detrás de esto es que el estándar es suficiente para permitir que
interoperen implementaciones diferentes. Los nombres strings nunca se comunican
entre diferentes implementaciones. En su lugar, sólo son necesarios para
interacción con los usuarios finales. Para este propósito, el estándar
permite cualquier representación, no necesariamente sólo representaciones
string.
Los sistemas que están basados en X.500, como el LDAP, el directorio DCE,
NDS
de Novell, y el Directorio Activo de Microsoft, definen sus propias
representaciones. Por ejemplo, en LDAP, una RDN de DN se ordenan de derecha a
izquierda, separados por comas. Aquí tenemos un ejemplo de un nombre que
empieza con "c=us"
al incio de la rama hasta
"cn=Rosanna Lee" en la hoja.
cn=Rosanna Lee, ou=People, o=Sun, c=us
Aquí hay un ejemplo del mismo nombre usando la representación string del
directorio DCE y del Directorio Activo de Microsoft.
/c=us/o=Sun/ou=People/cn=Rosanna Lee
La convención para estos sistemas es que las RDNs se ordenan de izquierda a
derecha separadas por barras inclinadas ("/").
Protocolos
El estándar X.500 define un protocolo (entre otros) para que una aplicación
cliente acceda al directorio X.500. Llamado "Directory Access Protocol
(DAP)", está en la capa superior de la pila del protocolo "Open
Systems Interconnection" (OSI).
Interfaces de Programación de Aplicación
El propio estándar X.500 no define un API para acceder al directorio. De nuevo,
el estandar X.500 está principalmente preocupado con la interoperatividad entre
los clientes y los servidores del directorio y entre los diferentes servidores
de directorio.
Un API estándard que se ha definido para el X.500 es la Especificación API
X/Open para Servicios de Directorio (XDS), un API basado en lenguaje C que los
programas clientes usan para acceder a directorios X.500.