……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Índice de contenidos
• ¿Qué es LDAP?
• Funcionamiento de LDAP
• Cómo se almacena la información en LDAP
• Cómo se accede a la información en LDAP
• Estructura de una URL de acceso en LDAP
• Herramientas más importantes que utilizan el protocolo LDAP
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
¿Qué es LDAP?
• LDAP son las siglas de Protocolo Ligero de Acceso a Directorio, o
en inglés Lightweight Directory Access Protocol). Se trata de un
conjunto de protocolos de licencia abierta que son utilizados para
acceder a la información que está almacenada de forma centralizada
en una red. Este protocolo se utiliza a nivel de aplicación para
acceder a los servicios de directorio remoto.
• Un directorio remoto es un conjunto de objetos que están
organizados de forma jerárquica, tales como nombre claves
direcciones, etc. Estos objetos estarán disponibles por una serie de
cliente conectados mediante una red, normalmente interna o LAN, y
proporcionarán las identidades y permisos para esos usuarios que los
utilicen.
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
¿Qué es LDAP?
• LDAP está basado en el protocolo X.500 para compartir directorios, y contiene esta
información de forma jerarquizada y mediante categorías para proporcionarnos una
estructura intuitiva desde el punto de vista de la gestión por parte de los
administradores. Es, por así decirlo, una guía telefónica, pero con más atributos y
credenciales. En este caso utilizamos el término directorio para referirnos a la
organización de estos objetos.
• De forma general, estos directorios se utilizan básicamente para contener información
virtual de usuarios, para que otros usuarios accedan y dispongan de información acerca
de los contactos que están aquí almacenados. Pero es mucho más que esto, ya que es
capaz de comunicarse de forma remota con otros directorios LDAP situados en
servidores que pueden estar en el otro lado del mundo para acceder a la información
disponible. De esta forma se crea una base de datos de información descentralizada y
completamente accesible.
• La versión actual se denomina LDAPv3 y se encuentra definida en una hoja de
documentación RFC 4511 accesible de forma pública.
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Funcionamiento de LDAP
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Funcionamiento de LDAP
• LDAP es un protocolo basado en la conexión entre cliente y servidor. En el
servidor LDAP se almacenarán los datos relativos al directorio, el cual podrá usar
una amplia variedad de bases de datos para este almacenamiento, llegando a ser
de grandes dimensiones.
• El funcionamiento de acceso y administración es muy similar a Active Directory
de Windows. Cuando el cliente LDAP se conecta con el servidor, podrá realizar
dos acciones básicas, bien consultar y obtener información del directorio, o
modificarla.
• Si un cliente consulta la información al servidor, éste puede darla directamente si tienen un
directorio alojado en él, o bien redirigir la solicitud hasta otro servidor que efectivamente
tenga esta información. Este podrá ser local, o remoto.
• Si un cliente quiere modificar la información del directorio, el servidor comprobará si el
usuario que está accediendo a este directorio tiene permisos de administrador o no. Así, la
información y gestión de un directorio LDAP se podrá hacer de forma remota.
• El puerto de conexión para el protocolo LDAP es el TCP 389, aunque por
supuesto, se podrá modificar por el usuario y establecerlo en el que desee si así
se lo indica al servidor.
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Cómo se almacena la información en LDAP
[<id>]
• En un directorio LDAP podremos almacenar básicamente la misma información
dn: <distinguished name>
que en un Directorio Activo de Windows. El sistema está basado
<attrtype>: en la siguiente
<attrvalue>
estructura: <attrtype>: <attrvalue>
<attrtype>:
• Entradas, llamadas objetos en Active Directory. Estas entradas<attrvalue>
son colecciones
de atributos con un Nombre Distinguido (DN) Este nombre se utiliza para dar un
identificador único e irrepetible a una entrada del directorio. Una entrada puede
ser el nombre de una organización y de ella colgarán unos atributos. También una
persona puede ser una entrada.
• Atributos: los cuales poseen un tipo identificador y los correspondientes valores.
Los tipos se utilizan para identificar los nombres de atributos, por ejemplo “mail”,
“name”, “jpegPhoto”, etc. Algunos de los atributos que pertenecen a una entrada
deben ser obligatorios y otros opcionales.
• LDIF: el Formato de Intercambio de Datos de LDAP es la representación en texto
ASCII de las entradas LDAP. Este debe ser el formato de los archivos que se
utilicen para importar información a un directorio LDAP. Cuando se escriba una
línea en blanco, significará el final de una entrada.
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Cómo se almacena la información en LDAP
• Árboles: Es la organización jerarquizada de entradas. Por ejemplo,
en una estructura de árbol podremos encontrar un país en la parte
superior y como principal, y dentro de éste tendremos los distintos
estados que conforma el país. Dentro de cada estado podremos
enumerar los distritos, ciudadanos y direcciones de donde viven, y así
sucesivamente.
• Si aplicáramos esto a Internet y la informática, podríamos organizar
un directorio LDAP mediante un nombre de dominio que haría las
funciones de árbol y de él colgarían los distintos departamentos o
unidades organizativas de una empresa, empleados etc. Y es
precisamente de esta forma como actualmente se forma los
directorios, gracias al uso de un servicio DNS, podremos asociar una
dirección IP con un directorio LDAP para poder acceder a él mediante
el nombre de dominio
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Cómo se accede a la información en LDAP
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Cómo se accede a la información en LDAP
Un ejemplo de entrada de un directorio de LDAP puede ser:
dn: cn=Jose
• dn (domain name): nombre de entrada, pero no forma parte de la propia
entrada. Castillo,dc=profesionalreview,dc=com
cn: Jose Castillo
• dc: componente de dominio paragivenName:
identificar Jose
las partes del dominio donde
se almacena el directorio LDAP. sn: Castillo
• cn (common name): nombre de atributo para identificar
telephoneNumber: +34 666el666
nombre
666 de
usuario, por ejemplo mail: usuario@[Link]
• sn (surname): apellido del usuarioobjectClass: inetOrgPerson
objectClass: organizationalPerson
• telephoneNumbre, mail…: identificar de nombre
objectClass: personpara el atributo teléfono
y correo electrónico. objectClass: top
• objectClass: distintas entradas para definir las propiedades de los atributos
Un servidor LDAP, además de almacenar un árbol, puede contener
subárboles que incluyen entradas específicas del dominio principal. Además,
puede almacenar referencias a otros servidores de directorio para dividir el
contenido si es necesario.
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Estructura de una URL de acceso en LDAP
Al efectuar conexiones remotas a un servidor LDAP, necesitaremos del uso
de direcciones URL para obtener información de éste. La estructura básica:
ldap://servidor:puerto/DN?atributos?ambito?filtros?extensiones
• servidor o host: es la dirección IP o nombre de dominio del servidor LDAP
• puerto: el puerto de conexión del servidor, por defecto será el 389
• DN: nombre distinguido para usar en la búsqueda
• Atributos: es una lista de campos a devolver separados por comas
• Ámbito o scope: es el ámbito de la búsqueda
• Filtros: parar filtrar la búsqueda según el identificador del objeto, por
ejemplo.
• Extensiones: serán las cadenas de caracteres extensiones de la URL en
LDAP.
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Herramientas más importantes que utilizan el protocolo LDAP (1)
En la actualidad existen diversas herramientas que utilizan este protocolo
para la comunicación cliente servidor de un servicio de directorio. Lo más
relevante es que incluso Active Directory de Windows utiliza este protocolo
de comunicación.
• OpenLDAP: es la implementación libre del protocolo LDAP. Tiene su
propia licencia y es compatible con otros servidores que utilicen el mismo
protocolo. Es utilizado por distintas distribuciones Linux y BSD.
• Active Directory: es un almacén de datos de directorio con licencia
Microsoft e implementado en sus sistemas operativos server desde
Windows 2000. Realmente bajo la estructura de Active Directory se
encuentra un esquema LDAPv3, por lo que también es compatible con
otros sistemas que implemente este protocolo en sus directorios.
• Red Hat Directory Server: es un servidor que también se basa en LDAP
similar a Active Directory, pero mediante una herramienta de código
abierto. Dentro de este directorio podremos almacenar objetos como
usuarios claves, grupos, políticas de permisos, etc.
……………………………………………………………………………
SISTEMAS OPERATIVOS EN RED: LDAP
……………………………………………………………………………
Herramientas más importantes que utilizan el protocolo LDAP (2)
• Apache Directory Server: otra de las grandes implementaciones
que utilizan LDAP es el directorio con licencia de Apache Software.
Además, implementa otros protocolos como Kerberos y NTP y
cuenta con una interfaz de vistas propias de las bases de datos
relacionales.
• Novell Directory Services: este es el servidor de directorio propio
de Novell para gestionar el acceso a un almacén de recursos en
uno o varios servidores conectados en red. Se compone de una
estructura de base de datos jerárquica orientada a objetos en la
que se almacenan todos los objetos típicos de los directorios.
• Open DS: terminamos esta lista con el directorio basado en java de
SUN Microsystems, que posteriormente se liberaría para todos los
usuarios. Por supuesto, está desarrollado en JAVA el necesitaremos
el paquete Java Runtime Environmet para que éste funcione.