Open Directory is a directory service architecture whose programming interface provides a centralized way
for applications and services to retrieve information stored in directories. Often, the information that is being
sought is configuration information stored in a NetInfo database or in flat files, with each file having its own
record format and field delimiters. Examples of configuration information include users and groups
(/etc/passwd and /etc/group), and automount information (/mounts). Open Directory uses standard
record types and attributes to describe configuration information so that Open Directory clients have no
need to know the details of record formats and data encoding.
Earlier directory services, such as lookupd and NetInfo, took the first steps in providing access to configuration
information but were limited in their capabilities. For example, lookupd provides support for reading but
does not provide support for writing, and it does not provide support for authentication. Open Directory
continuesthe evolution of directory services by providingexpanded functionality. For example, Open Directory
can write data as well as read it, and Open Directory includes support for a variety of authentication methods.
While providing support for lookupd and NetInfo, Open Directory’s primary protocol is LDAP (supporting
LDAPv2 and LDAPv3). As a result, Open Directory provides a way of accessing and sharing data using both
LDAP and NetInfo. Open Directory provides seamless and automaticintegration of Apple Computer’s directory
services and third-party directory services including Active Directory, iPlanet and OpenLDAP.
Open Directory Overview
Open Directory consists of the DirectoryService daemon and Open Directory plug-ins. Apple Computer
provides Open Directory plug-ins for LDAPv3 (which supports LDAPv2), NetInfo, AppleTalk, SLP, Windows,
and Bonjour. The AppleTalk, SLP,SMB, and Bonjour Open Directory plug-ins discover services that are available
on the local network. In Mac OS X, lookupd resolves DNS queries through UNIX function calls like
gethostbyname(). The Open Directory LDAP plug-in provides information about users and groups of users.
For information on writing your own Open Directory plug-in, see the document Open Directory Plug-ins.
Open Directory Overview 9
2007-01-08 | © 2007 Apple Inc. All Rights Reserved.
CHAPTER 1
Concepts