El Schema LDAP¶
Lista exaustiva de los schemas adoptados:¶
Mantenemos esa lista en ~/ldifs/schema/interior.conf
:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/eduperson.schema include /etc/ldap/schema/pwm.schema
Los 4 primeros están en la distribución de OpenLDAP (y en realidad ya cargamos algunos con el .ldif correspondiente)
Los dos siguientes se construyen como indicado a continuación:
Schema para PWM¶
Las extensiones de schema que requiere pwm están en la documentación de admin , y más específicamente acá el archivo pwm.schema para openldap
El /etc/ldap/schema/pwm.schema que creamos contiene:
# /etc/ldap/schema/pwm.schema # # We try to define OID's "correctly" as outlined here: # # http://www.openldap.org/doc/admin23/schema.html # # 1.3.6.1.4.1 base OID # 591242 organization idenfifier # 1 if an objectclass # 2 if an attribute # yyyy.mm.dd date of creation # n extra identifier # attributetype ( 1.3.6.1.4.1.591242.2.2010.04.16.1 NAME 'pwmEventLog' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) attributetype ( 1.3.6.1.4.1.591242.2.2010.04.16.2 NAME 'pwmResponseSet' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) attributetype ( 1.3.6.1.4.1.591242.2.2010.04.16.3 NAME 'pwmLastPwdUpdate' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 ) attributetype ( 1.3.6.1.4.1.591242.2.2010.04.16.4 NAME 'pwmGUID' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) objectclass ( 1.3.6.1.4.1.591242.1.2010.04.16.1 NAME 'pwmUser' AUXILIARY MAY ( pwmLastPwdUpdate $ pwmEventLog $ pwmResponseSet $ pwmGUID )
eduPersona Schema¶
El schema de eduPerson está acá
Creamos con este el archivo /etc/ldap/schema/eduperson.schema
.
Generamos los ldif que nos faltan con:
slaptest -f interior.conf -F convierte.d/
Obtenemos, en la carpeta convierte.d/
los archivos directamente para ser copiados al /etc/ldap/slapd.d
cp convierte.d/cn\=config/cn\=schema/cn\=\{4\}eduperson.ldif /etc/ldap/slapd.d/cn\=config/cn\=schema/ cp convierte.d/cn\=config/cn\=schema/cn\=\{5\}pwm.ldif /etc/ldap/slapd.d/cn\=config/cn\=schema/
Cambiar propietario:
chown openldap:openldap /etc/ldap/slapd.d/cn\=config/cn\=schema/cn\=\{4\}eduperson.ldif chown openldap:openldap /etc/ldap/slapd.d/cn\=config/cn\=schema/cn\=\{5\}pwm.ldif
Reiniciar openldap
sudo service slapd restart
Para ver los schemas, y ver que quedo habilitado
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config
-------------
Referencia: http://www.linuxcolombia.com.co/?q=node/39
------------
Como integrar un Schema LDAP¶
Ahora se requiere un archivo .ldif de configuración dinámica, ya no la descripción .schema. En /etc/ldap/schema/
hay ejemplos de .schema y el correspondiente .ldif, en README se explica que éstos se obtienen "when converting a slapd.conf". Falta decir que es con la heramienta ldaptest.
Si tenemos un <esquema>.conf con:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/<mi_esquema_1>.schema include /etc/ldap/schema/<mi_esquema_2>.schema ... include /etc/ldap/schema/<mi_esquema_n>.schema
Con el comando:
slaptest -f <esquema>.conf -F convierte.d/
Obtenemos, en la carpeta convierte.d/ los archivos directamente para ser copiados al /etc/ldap/slapd.d