OpenLDAP se distribuye con un conjunto de definiciones de schemas que se pueden incluir y utilizar. Este artículo explica cómo incluirlos en la configuración de slpad utilizando OLC (on-line configuration). De todos los esquemas provistos, el único requerido es core.schema
, el resto son opcionales o experimentales. Sin embargo, en toda instalación de OpenLDAP típicamente es útil incluir los esquemas cosine e inetorgperson.
Cuando se trabaja con la configuración estática de slapd (archivo slapd.conf
), para incluir alguno de estos esquemas basta con agregar una sentencia include
con la ruta al mismo dentro del archivo slapd.conf
y reiniciar el servicio:
include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema
Sin embargo, cuando se trabaja con la configuración dinámica OLC (cn=config), los schemas se deben incluir mediante un archivo LDIF empleando el utilitario ldapadd
. Afortunadamente para cada schema OpenLDAP provee su correspondiente versión en formato LDIF dentro del directorio schema
:
root@ldap:~# ls -l /usr/local/etc/openldap/schema/ total 316 -r--r----- 1 ldap ldap 2036 jun 17 13:34 collective.ldif -r--r----- 1 ldap ldap 6190 jun 17 13:34 collective.schema -r--r----- 1 ldap ldap 1845 jun 17 13:34 corba.ldif -r--r----- 1 ldap ldap 8063 jun 17 13:34 corba.schema -r--r----- 1 ldap ldap 20612 jun 17 13:34 core.ldif -r--r----- 1 ldap ldap 20499 jun 17 13:34 core.schema -r--r----- 1 ldap ldap 12006 jun 17 13:34 cosine.ldif -r--r----- 1 ldap ldap 73994 jun 17 13:34 cosine.schema -r--r----- 1 ldap ldap 4842 jun 17 13:34 duaconf.ldif -r--r----- 1 ldap ldap 10388 jun 17 13:34 duaconf.schema -r--r----- 1 ldap ldap 3330 jun 17 13:34 dyngroup.ldif -r--r----- 1 ldap ldap 3289 jun 17 13:34 dyngroup.schema -r--r----- 1 ldap ldap 3481 jun 17 13:34 inetorgperson.ldif -r--r----- 1 ldap ldap 6267 jun 17 13:34 inetorgperson.schema -r--r----- 1 ldap ldap 2979 jun 17 13:34 java.ldif -r--r----- 1 ldap ldap 13901 jun 17 13:34 java.schema -r--r----- 1 ldap ldap 2082 jun 17 13:34 misc.ldif -r--r----- 1 ldap ldap 2387 jun 17 13:34 misc.schema -r--r----- 1 ldap ldap 6809 jun 17 13:34 nis.ldif -r--r----- 1 ldap ldap 7640 jun 17 13:34 nis.schema -r--r----- 1 ldap ldap 3308 jun 17 13:34 openldap.ldif -r--r----- 1 ldap ldap 1514 jun 17 13:34 openldap.schema -r--r----- 1 ldap ldap 6904 jun 17 13:34 pmi.ldif -r--r----- 1 ldap ldap 20467 jun 17 13:34 pmi.schema -r--r----- 1 ldap ldap 4570 jun 17 13:34 ppolicy.ldif -r--r----- 1 ldap ldap 20489 jun 17 13:34 ppolicy.schema -r--r----- 1 ldap ldap 3512 jun 17 13:34 README
Por ende, en lugar de utilizar la sentencia include
dentro de slapd.conf
, se incluye el schema agregando el correspondiente LDIF con ldapadd
:
root@ldap:~# ldapadd -f /usr/local/etc/openldap/schema/inetorgperson.ldif -x -D "cn=admin,cn=config" -W Enter LDAP Password: adding new entry "cn=inetorgperson,cn=schema,cn=config"
Como siempre, la ventaja de trabajar con OLC es que no requiere reiniciar el servicio.
Referencias
- OpenLDAP Software 2.4 Administrator's Guide - 13. Schema Specification
- 6.1.1.4.2 Add/Delete Schemas using OLC (cn=config) - LDAP for Rocket Scientists