The name LDAP is short for Lightweight Directory Access Protocol. Its current version is 3. It is specified in [RFC 2251], and [RFC 2252], with additional information in [RFC 2253], [RFC 2254], [RFC 2255], and [RFC 2256].

There is a free LDAP implementation of a server and client library. It is available at It implements the currently used versions 2 and 3 of the LDAP protocol.

LDAP is a database access protocol optimized for reading. It organizes data in a tree structure. The tree structure is adopted from the well known DNS schema. This enables us to find and uniquely identify data.

Each LDAP server can forward requests to other LDAP servers it knows about. This makes LDAP very easily distributable around the world. Results or whole trees can be cached and replicated to allow disconnected operations.

Writing to LDAP is far more difficult. Each LDAP node can only be changed on its authoritative server. There is no merge protocol. The conflict problem is solved by avoiding it. Whenever a client tries to write into the LDAP tree on a replicated server, it gets back a referral request to the authoritative server.

Each LDAP node implements one ore more schemas. A schema contains a list of attributes and what they mean. Standards exist for some of the more common used schemas.

When enumerating nodes, these schemas can be taken into account. If, for example, we want to enumerate all address book entries, we would look for nodes implementing the “inetOrgPerson” schema.

Data organized in LDAP is not limited to information about people. LDAP is actually used for administration of large computer clusters. In those, LDAP is used to store computer dependant configuration such as IP addresses, network MAC addresses, and user login information.

Microsoft‘s “Active Directory” is basically just the addition of LDAP to their file sharing protocol. This enables Microsoft to include all these nice distribution features.

LDAP is a very good protocol for data that can not be changed by the end user, like public address books. It provides other nice features such as support for account management. It is a very good source of additional data. But it is not suited for individual, personal information.