Diferencia entre revisiones de «OpenLDAP»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 57: Línea 57:
* cn=schema Contiene el schema del sistema.
* cn=schema Contiene el schema del sistema.
* Los objetos hijos de cn=schema contienen los schemas del usuario añadidos más tarde.
* Los objetos hijos de cn=schema contienen los schemas del usuario añadidos más tarde.
* La configuración del Backend y de la base de datos, otras configuraciones de la base de datos se pueden colocar como hijos de esta.
* La configuración del Backend y de la base de datos, otras configuraciones de la base de datos se pueden colocar como hijos de esta. olcDatabase es el parámetro que se usa para configurar la base de datos.


Veamos el LDIF de una configuración estándar.


olcDatabase es el parámetro que se usa para configurar la base de datos.
        # global configuration settings
        dn: cn=config
        objectClass: olcGlobal
        cn: config
        <global config settings>
 
        # schema definitions
        dn: cn=schema,cn=config
        objectClass: olcSchemaConfig
        cn: schema
        <system schema>
 
        dn: cn={X}core,cn=schema,cn=config
        objectClass: olcSchemaConfig
        cn: {X}core
        <core schema>
 
        # additional user-specified schema
        ...
 
        # backend definitions
        dn: olcBackend=<typeA>,cn=config
        objectClass: olcBackendConfig
        olcBackend: <typeA>
        <backend-specific settings>
 
        # database definitions
        dn: olcDatabase={X}<typeA>,cn=config
        objectClass: olcDatabaseConfig
        olcDatabase: {X}<typeA>
        <database-specific settings>
 
        # subsequent definitions and settings
        ...

Revisión del 18:01 2 sep 2012

OpenLDAP es una de las implementaciones de este servicio más populares en el mundo Linux.

Se trata de software libre y multiplataforma.

OpenLDAP tiene tres componentes principales:

  • slapd - Es el demonio que espera peticiones.
  • Bibliotecas para implementar el protocolo
  • Programas clientes: ldapsearch, ldapadd, ldapdelete...

Opciones de configuración

La opción más simple es la de un servicio local, ya sea en una LAN o en un ordenador individual. Un servidor proporciona el servicio a uno o más clientes.

Config local.png

La siguiente opción, es la que se usa para añadir nuestro servidor a un servicio de directorio más amplio. Puede que administrado por otros.

Config ref.png

Como se puede ver, si el servidor local no es capaz de resolver la petición, le indica al cliente que la pida a un servidor superior.

La tercera opción es la de crear duplicados del servicio de directorio.

Config repl.png

En esta opción, el servidor maestro crea duplicados en otros servidores.


Referencia: http://www.openldap.org/doc/admin24/config.html

Backend

El servidor OpenLDAP tiene un sección frontal para controlar conexiones y el protocolo LDAP y una base de datos en segundo plano o backend que se dedica a guardar los datos.

Puesto que tiene una arquitectura modular, se pueden usar múltiples backends para ofrecer el servicio.

OpenLDAP permite por defecto 16 backends distintos. Estos se pueden clasificar en tres categorías:

  • De almacenamiento de datos
  • Proxy backends, que actuan como puertas de enlace con otros sistemas de almacenamiento.
  • Dinámicos, los que generan los datos en el momento.

Un servidor LDAP puede dar, simultáneamente, acceso a múltiples bases de datos. En las nuevas versiones de LDAP hay como mínimo dos:

  • config para la configuración
  • /var/lib/ldap que es el backend de la base de datos. Suele estar en hdb

Configuración

A partir de OpenLDAP 2.3, la configuración se vuelve dinámica. Esto quiere decir que permite modificaciones con el servidor en marcha. Además, la propia configuración se almacena como un directorio LDAP y se puede administrar con las órdenes comunes del servidor.

Puesto que la configuración también es como un directorio LDAP, tiene su DIT. Es el siguiente:

Config dit.png

El primer nodo es cn=config y tiene los ajustes de configuración global. En las otras entradas están los demás ajustes:

  • cn=module Carga dinámica de módulos.
  • cn=schema Contiene el schema del sistema.
  • Los objetos hijos de cn=schema contienen los schemas del usuario añadidos más tarde.
  • La configuración del Backend y de la base de datos, otras configuraciones de la base de datos se pueden colocar como hijos de esta. olcDatabase es el parámetro que se usa para configurar la base de datos.

Veamos el LDIF de una configuración estándar.

       # global configuration settings
       dn: cn=config
       objectClass: olcGlobal
       cn: config
       <global config settings>
       # schema definitions
       dn: cn=schema,cn=config
       objectClass: olcSchemaConfig
       cn: schema
       <system schema>
       dn: cn={X}core,cn=schema,cn=config
       objectClass: olcSchemaConfig
       cn: {X}core
       <core schema>
       # additional user-specified schema
       ...
       # backend definitions
       dn: olcBackend=<typeA>,cn=config
       objectClass: olcBackendConfig
       olcBackend: <typeA>
       <backend-specific settings>
       # database definitions
       dn: olcDatabase={X}<typeA>,cn=config
       objectClass: olcDatabaseConfig
       olcDatabase: {X}<typeA>
       <database-specific settings>
       # subsequent definitions and settings
       ...