|
Server Side \ Cómo usar LDAP en Linux Cómo usar LDAP en Linux
Este artículo ha sido consultado en 1,052 ocasiones. Luiz Ernesto Pinheiro Malere, malere@yahoo.com. Traducción de J. Iván Juanes Prieto, kerberos@insflug.org.v1.01, 15 febrero 2000
En este documento se presenta la información acerca de la instalación,
configuración, ejecución y mantenimiento de un servidor del Protocolo
Ligero de Acceso a Directorios (LDAP) en una máquina Linux. También se
dan detalles sobre cómo crear bases de datos LDAP, cómo actualizar y
borrar información de la base de datos, cómo implementar acceso móvil
y cómo utilizar la Libreta de Direcciones (Address Book) de
Netscape. Este documento está fuertemente inspirado en las páginas
informativas de LDAP de la Universidad de Michigan.
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.
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.
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.
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.
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:
- Grupos en el directorio, entre ellos listas no ordenadas de
objetos individuales o de grupos de objetos.
- Emplazamientos, como por ejemplo el nombre del país y su
descripción.
- Organizaciones que están en el directorio.
- Personas que están en el directorio.
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:
bin binario
ces cadena con mayúsculas y minúsculas exactas (las mayúsculas y
minúsculas son significativas durante las comparaciones)
cis cadena con mayúsculas y minúsculas ignoradas (las mayúsculas
y minúsculas no son significativas durante las comparaciones)
tel cadena de número de teléfono (como cis, pero durante las
comparaciones se ignoran los espacios en blanco y los guiones "-")
dn "distinguished name" («nombre distintivo»)
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.
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.)
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.
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.
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
|