Página siguiente Página anterior Índice general

1. Introducción

La finalidad principal de este documento es permitirle configurar y utilizar un Servidor de directorio LDAP (Protocolo Ligero de Acceso a Directorios) en su máquina Linux. Aprenderá cómo instalar, configurar, ejecutar y mantener el servidor LDAP. Después, aprenderá también cómo almacenar, recuperar y actualizar información en su Directorio, utilizando las utilidades y clientes LDAP. El demonio o programa servidor para el directorio LDAP se llama slapd y puede ejecutarse sobre muchas plataformas UNIX diferentes.

Hay otro demonio o programa servidor que se encarga de la replicación entre servidores. Su nombre es slurpd y por el momento no necesitará preocuparse de él. En este documento, ejecutaremos un slapd que proporciona servicio de directorio para su dominio local únicamente, es decir, sin slurpd.

He aquí una configuración sencilla del servidor, válida para empezar, pero fácil también de actualizar a una configuración distinta más adelante, si lo desea. La información que se presenta en este documento representa una buena forma de iniciarse en el uso del protocolo LDAP. Es probable que tras la lectura del documento se sienta con fuerzas para ampliar las capacidades de su servidor, e incluso con ganas de escribir sus propios clientes, usando los entornos de desarrollo ya existentes para C, C++ y Java.

1.1 ¿Qué es LDAP?

LDAP (``Lightweight Directory Access Protocol'', «Protocolo Ligero de Acceso a Directorios») es un protocolo de tipo cliente-servidor para acceder a un servicio de directorio. Se usó inicialmente como un front-end o interfaz final para X.500, pero también puede usarse con servidores de directorio únicos y con otros tipos de servidores de directorio.

1.2 ¿Qué es un servicio de directorio?

Un directorio es como una base de datos, pero en general contiene información más descriptiva y más basada en atributos. La información contenida en un directorio normalmente es lee mucho más de lo que se escribe. Como consecuencia los directorios no implementan normalmente los complicados esquemas para transacciones o esquemas de reducción (rollback) que las bases de datos utilizan para llevar a cabo actualizaciones complejas de grandes volúmenes de datos. Por contra, las actualizaciones en un directorio son usualmente cambios sencillos de «todo o nada», si es que se permiten en algo.

Los directorios están afinados para proporcionar una repuesta rápida a operaciones de búsqueda o consulta. Pueden tener la capacidad de replicar información de forma amplia, con el fin de aumentar la disponibilidad y la fiabilidad, y a la vez reducir el tiempo de respuesta. Cuando se duplica (o se replica) la información del directorio, pueden aceptarse inconsistencias temporales entre la información que hay en las réplicas, siempre que finalmente exista una sincronización.

Existen muchas maneras distintas de proporcionar un servicio de directorio. Los diferentes métodos permiten almacenar en el directorio diferentes tipos de información, establecer requisitos diferentes para hacer referencias a la información, consultarla y actualizarla, la forma en que protege al directorio de accesos no autorizados, etc. Algunos servicios de directorio son locales, proporcionando servicios a un contexto restringido (por ejemplo, el servicio de finger en una única máquina). Otros servicios son globales, proporcionando servicio en un contexto mucho más amplio.

1.3 ¿Cómo funciona LDAP?

El servicio de directorio LDAP se basa en un modelo cliente-servidor. Uno o más servidores LDAP contienen los datos que conforman el árbol del directorio LDAP o base de datos troncal. el cliente ldap se conecta con el servidor LDAP y le hace una consulta. El servidor contesta con la respuesta correspondiente, o bien con una indicación de dónde puede el cliente hallar más información (normalmente otro servidor LDAP). No importa con qué servidor LDAP se conecte el cliente: siempre observará la misma vista del directorio; el nombre que se le presenta a un servidor LDAP hace referencia a la misma entrada a la que haría referencia en otro servidor LDAP. Es ésta una característica importante de un servicio de directorios universal como LDAP.

1.4 Backends, objetos y atributos en LDAP

slapd se suministra con tres diferentes bases de datos de backend (dorsal, o base de datos de segundo plano) entre las que elegir. Se trata de LDBM, una base de datos de gran rendimiento basada en disco: SHELL, una interfaz de base de datos para órdenes arbitrarias de UNIX o guiones (scripts) del intérprete de órdenes (shell); y PASSWD, una sencilla base de datos de contraseñas.

En el desarrollo de este documento, se da por supuesto que ha elegido la base de datos LDBM.

La base de datos LDBM funciona asignando un identificador compacto de cuatro bytes, único para cada entrada de la base de datos. La base de datos utiliza este identificador para hacer referencia a entradas en los índices. La base de datos está compuesta de un fichero índice principal, llamado id2entry, que mapea el identificador único de una entrada en la representación en texto de esa misma entrada. También se da mantenimiento a otros ficheros índice.

Para importar y exportar información de directorio entre servidores de directorios basados en LDAP, o para describir una serie de cambios que han de aplicarse al directorio, se usa en general del fichero de formato conocido como LDIF (siglas de "LDAP interchange format", «formato de intercambio de LDAP»). Un fichero LDIF almacena información en jerarquías de entradas orientadas a objeto. El paquete de software LDAP que va a utilizar incluye una utilidad para convertir ficheros LDIF a formato LDBM.

Un fichero LDIF corriente tiene este aspecto:

dn: o=Insflug, c=ES
o: Insflug
objectclass: organization
dn: cn=Luiz Malere, o=Insflug, c=ES
cn: Luiz Malere
sn: Malere
mail: malere@yahoo.com
objectclass: person

Como puede comprobar, cada entrada está identificada unívocamente por un nombre distintivo (DN, "distinguished name"). El DN (nombre distintivo) está compuesto por el nombre de la entrada en cuestión, más la ruta de nombres que permiten rastrear la entrada hacia atrás hasta la parte superior de la jerarquía del directorio.

En LDAP, una clase de objetos define la colección de atributos que pueden usarse para definir una entrada. El estándar LDAP proporciona estos tipos básicos para las clases de objetos:

Una entrada determinada puede pertenecer a más de una clase de objetos. Por ejemplo, la entrada para personas se define mediante la clase de objetos person, pero también puede definirse mediante atributos en las clases de objetos inetOrgPerson, groupOfNames y organization. La estructura de clases de objetos del servidor (su esquema) determina la lista total de atributos requeridos y permitidos para una entrada concreta.

Los datos del directorio se representan mediante pares de atributo y su valor. Cualquier pieza de información específica se asocia con un atributo descriptivo.

Por ejemplo el atributo commonName, o cn («nombre de pila»), se usa para almacenar el nombre de una persona. Puede representarse en el directorio a una persona llamada Jonás Saqueiro mediante

cn: Jonás Saqueiro

Cada persona que se introduzca en el directorio se define mediante la colección de atributos que hay en la clase de objetos person. Otros atributos que se usan para definir esta entrada serán:

givenname: Jonás
surname: Saqueiro
mail: jonass@midominio.com

Los atributos requeridos son aquellos que deben estar presentes en las entradas que utilicen la clase de objetos. Todas las entradas precisan del atributo objectClass, que lista las clases de objeto a las que pertenece una entrada.

Los atributos permitidos son aquellos que pueden estar presentes en las entradas que utilicen la clase de objetos. Por ejemplo, en la clase de objetos person, se requieren los atributos cn y sn. Los atributos description («descripción»), telephoneNumber («número de teléfono»), seeAlso («véase también»), y userpassword («contraseña del usuario») se permiten pero no se requieren.

Cada atributo tiene la definición de sintaxis que le corresponde. La definición de sintaxis describe el tipo de información que proporciona ese atributo:

Para conocer en qué lugar de su sistema se emplazan las definiciones de clases de objetos y de atributos, véase el primer párrafo de la sección 3.

1.5 Nuevas versiones de este documento.

Este documento puede experimentar actualizaciones y correcciones en razón de la respuesta que suscite entre sus lectores. Por favor busque nuevas versiones del original inglés en:

http://www.ddtc.dimes.tudelft.nl/~malere/LDAP-Linux-HOWTO.html

(y nuevas versiones de la traducción castellana de este Cómo en http://www.insflug.org/, N. del T.)

1.6 Opiniones y sugerencias

Si tiene alguna duda sobre cualquier información disponible en este documento, por favor contacte con nosotros en la siguiente dirección de correo electrónico:

malere@yahoo.com

Si tiene algún comentario o sugerencia, no dude en comunicármelo.

1.7 Agradecimientos

Este Cómo es el resultado de unas prácticas que hemos realizado en la universidad de TUDelft, en Holanda. Queremos dar las gracias a las personas que nos animaron a escribir este documento: Rene van Leuken y Wim Tiwon. Muchísimas gracias. También ellos son entusiastas del Linux como nosotros.

1.8 Copyright y descargo de responsabilidad.

El LDAP-Linux-Cómo es Copyright 1999 de Luiz Ernesto Pinheiro Malere. Puede redistribuirse libremente. No puede modificarse. Si tiene cualquier tipo de sugerencia, por favor envíeme un correo electrónico (actualizaré el documento si la sugerencia es adecuada).

Si desea una traducción, por ejemplo al Portugués, puede enviarme también un correo sobre el particular.

No liability for the contents of this document can be accepted. I have no responsability about the consequences of following the Steps provided in this document.

Si tiene preguntas, por favor contacte con el coordinador de Linux HOWTO en

linux-howto@metalab.unc.edu


Página siguiente Página anterior Índice general