LDIF
Para poder entender el contenido de una base de datos LDAP o para poder crear y modificar sus entradas existe un lenguaje llamado LDIF (LDAP Data Interchange Format). Este representa en texto plano las entradas que LDAP guarda en su formato interno binario.
Registros de entrada
Los registro de entrada permiten ver el contenido de un objeto LDAP. Su forma básica es:
dn: <distinguished name> <attrdesc>: <attrvalue> <attrdesc>: <attrvalue> <attrdesc>:: <base64-encoded-value> <attrdesc>:< <URL>
Se pueden distinguir varios elementos:
- El DN del objeto en primer lugar.
- Un atributo normal en que se separa el nombre del valor por dos puntos y espacio.
- Pueden haber varios atributos con el mismo nombre. Eso significa que ese atributo tiene múltiples valores.
- Un atributo binario o que empieza por espacio o : o tiene caracteres no imprimibles. Es necesario codificarlo en base64. Se pueden poner, por ejemplo, imágenes codificadas en base64.
- Si se desea indicar un atributo enlazado se puede sar :< y la URL a continuación.
Cada registro se separa del anterior por una línea en blanco.
Un ejemplo con todas las combinaciones:
dn: cn=Barbara J Jensen,dc=example,dc=com
cn: Barbara J Jensen
cn: Babs Jensen
objectclass: person
description:< file:///tmp/babs
sn: Jensen
dn: cn=Bjorn J Jensen,dc=example,dc=com
cn: Bjorn J Jensen
cn: Bjorn Jensen
objectclass: person
sn: Jensen
dn: cn=Jennifer J Jensen,dc=example,dc=com
cn: Jennifer J Jensen
cn: Jennifer Jensen
objectclass: person
sn: Jensen
jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG
Registros de cambio
Se utilizan para representar cambios en el directorio. Comienzan con el DN del objeto a modificar y a continuación va la información del cambio que se desea realizar.
dn: <distinguishedname> changetype: <[modify|add|delete|modrdn]>
Añadir:
add: <attributetype> <attrdesc>: <value1> <attrdesc>: <value2> ... -
Como se puede ver, se pueden cambiar múltiples atributos al mismo tiempo. El - del final permite combinar operaciones de añadir, modificar o borrar con un mismo DN.
Reemplazar:
replace: <attributetype> <attrdesc>: <value1> <attrdesc>: <value2> ... -
Borrar:
delete: <attributetype> <attrdesc>: <value1> <attrdesc>: <value2> ... -
Ejemplo:
dn: cn=Babs Jensen,dc=example,dc=com
changetype: add
objectclass: person
objectclass: extensibleObject
cn: babs
cn: babs jensen
sn: jensen
dn: cn=Babs Jensen,dc=example,dc=com
changetype: modify
add: givenName
givenName: Barbara
givenName: babs
-
replace: description
description: the fabulous babs
-
delete: sn
sn: jensen
-