Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

Open Source
Directory Services

Apple's Open Directory architecture includes source code for both directory client access and directory servers. Open Directory forms the foundation of how Mac OS X accesses all authoritative configuration information (users, groups, mounts, managed desktop data, etc.). Mac OS X obtains this information via abstraction APIs, enabling the use of virtually any directory system.

Directory Service components are available under the Apple Public Source License.

Open Directory Access

Directory Services is a core part of the Open Directory technology. Directory Services provides a client read/write/authentication API abstraction for accessing directory-based data. Directory Services consists of an access API, and API daemon, and a plug-in API. The source code available at this site includes the following components:

  • DirectoryService (framework & daemon)
    • DirectoryService / PlugIns / LDAPv3
    • DirectoryService / PlugIns / NetInfo
  • DSNISPlugin
  • DSNSLPlugins
  • DSPasswordServerPlugin

Open Directory Servers

An additional element of Open Directory is the existing Darwin component of lookupd that provides a read-only abstraction for accessing all BSD configuration information. Both lookupd and Directory Services work in conjunction with each other via the DSAgent to provide authoritative and consistent configuration information to all processes running on Mac OS X regardless of which Directory API they are using. The source code for DSAgent is also available.

  • DSAgent
  • DSTools
  • lookupd

Articles

Writing Open Directory Plug-ins

This article discusses the implementation of an Open Directory plug-in, which responds to requests for information about resources. This article also discusses an Open Directory client application that calls the plug-in.

Related Links

Bug Reporting

Report bugs or make enhancement requests for the components listed above.

Darwin Source Code

Sources for the components listed above are available here.