Since LDAP is an open standard protocol, all of the information needed to create an LDAPv3-compliant server is freely available (see the LDAP Reference Materials for links to the relevant documents). As such, there are several available types of directory servers. Some of the most notable implementations are listed below:
Editor’s note: I am one of the creators of the Ping Identity Directory Server (formerly UnboundID Directory Server) and have been its lead developer since its creation. Since I would obviously be biased, and since I want this site to be as neutral as possible to promote the use of LDAP in general, I will avoid any attempt at ranking or assessing the quality of any of these implementations. Instead, they will be listed in alphabetical order.
If you have any suggestions for other directory servers to include on this page, please email them to firstname.lastname@example.org.
- 389 Directory Server (formerly Fedora Directory Server)
- CA Directory (formerly CA eTrust Directory)
- IBM Security Directory Server (formerly IBM Tivoli Directory Server and IBM SecureWay Directory)
- NetIQ eDirectory (formerly Novell eDirectory)
- Ping Identity Directory Server (formerly UnboundID Directory Server)
Alternately, if you’re developing an LDAP-enabled application and wish to have access to a directory server for use in your testing framework, it may be helpful to use a library designed for this purpose. Some of these options include:
- glauth can be used as a simple LDAP server for testing purposes.
- Java and Other JVM-Based Languages
- ApacheDS can be run in embedded mode
- embedded-ldap-junit — A library that can simplify LDAP-related testing in JUnit (uses the UnboundID LDAP SDK for Java behind the scenes)
- UnboundID LDAP SDK for Java provides an in-memory directory server and an LDAP listener framework. It also provides an LDAPTestUtils class to help facilitate unit testing
- ldapjs provides a framework for acting as an LDAP server
- python-ldap-test provides a Python framework for programatically creating an in-memory LDAP server (uses the UnboundID LDAP SDK for Java behind the scenes)
- ruby-ldapserver provides a Ruby framework for acting as an LDAP server