LDAP Data Interchange Format
From Wikipedia, the free encyclopedia
The LDAP Data Interchange Format (LDIF) is a standard data interchange format for representing (LDAP) directory content as well as directory update (Add, Modify, Delete, Rename) requests. LDAP is an acronym for "Lightweight Directory Access Protocol". It conveys directory content as a set of records, one record for each object (or entry). It represents update requests as a set of records, one record for each update request. In both cases, the data is presented in a plain text form.
LDIF was designed in the early 1990s by Gordon Good while at the University of Michigan. LDIF was updated and extended in the late 1990s for use with Version 3 of LDAP. This later version of LDIF is called version 1 and is formally specified in RFC 2849, an IETF Standard Track RFC. RFC 2849, authored by Gordon Good, was published in June 2000 and is currently a Proposed Standard.
A number of extensions to LDIF have been proposed over the years. One extension has been formally specified by the IETF and published. RFC 4525, authored by Kurt Zeilenga, extended LDIF to support the LDAP Modify-Increment extension. It is expected that additional extensions will be published by the IETF in the future.
Contents |
[edit] The Format
Each record is represented as a group of attributes, with records separated from one another by blank lines. The individual attributes of a record are represented as single logical lines (represented as one or more multiple physical lines via a line-folding mechanism), comprising "name:value" pairs. Value data that do not fit within a portable subset of ASCII characters are marked with '::' after the attribute name and encoded into ASCII using base64 encoding.
[edit] Tools that employ LDIF
The OpenLDAP utilities include tools for exporting data from LDAP servers to LDIF (ldapsearch), importing data from LDIF to LDAP servers (ldapadd), and applying a set of changes, described in LDIF, to LDAP servers (ldapmodify and ldapdelete).
LDIF is one of the formats for importing and exporting address book data that the address books in Netscape Communicator and in the Mozilla Application Suite support.
Microsoft Windows 2000 Server and Windows Server 2003 include an LDIF based command line tool named LDIFDE for importing and exporting information in Active Directory.
JXplorer is a cross platform open source java application that can browse and do basic editing of LDIF files.
[edit] Limitations of LDIF
Values in multi-valued attributes cannot be replaced directly. You need to delete the attributes values and then use "add:" multiple times to feed all of the required values in.
[edit] Examples of LDIF
This is an example of a simple directory entry with several attributes, represented as a record in LDIF:
dn: cn=The Postmaster,dc=example,dc=com objectClass: organizationalRole cn: The Postmaster
This is an example of an LDIF record that modifies multiple single-valued attributes for two different directory entries (this format is used by Microsoft's LDIFDE tool):
dn: CN=John Smith,OU=Legal,DC=example,DC=com changetype: modify replace:employeeID employeeID: 1234 - replace:employeeNumber employeeNumber: 98722 - replace: extensionAttribute6 extensionAttribute6: JSmith98 - dn: CN=Jane Smith,OU=Accounting,DC=example,DC=com changetype: modify replace:employeeID employeeID: 5678 - replace:employeeNumber employeeNumber: 76543 - replace: extensionAttribute6 extensionAttribute6: JSmith14 -
Note: the "-" character between each attribute change is required. Also note that each directory entry ends with a "-" followed by a blank line. The final "-" is required.
[edit] RFCs
- RFC 2849 — The LDAP Data Interchange Format (LDIF) - Technical Specification
- RFC 4510 — Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map
- RFC 4525 — LDAP Modify-Increment Extension