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 -