Platform SDK: Active Directory, ADSI, and Directory Services

About Active Directory

Writing Powerful Applications that Use Active Directory

If you are writing a distributed application for Microsoft® Windows® 2000, there are many compelling reasons to integrate Active Directory™. The intent of this programmer's guide is to give you the knowledge you need to best write to Active Directory.

Fundamental Directory Features

A directory service is a fundamental service for distributed applications. A directory service, at a minimum, must provide the following:

Location transparency
The ability to find information about a user, group, networked service, or resource, without knowing addressing information.
Information on people and services
The ability to store user, group, organization, and service information in a structured, hierarchical tree.
Rich query
The ability to locate objects of interest by querying for properties of the object.
High availability
The ability to locate a replica of the directory at a location that is maximally efficient for the read/write operations.
Microsoft Active Directory provides these capabilities and much, much more.

Advanced Features of Active Directory

Active Directory also provides the following:

Support for Internet standards
Active Directory global namespace roots in the domain name service (DNS), and then uses LDAP to access objects within the directory service data store.
Tightly integrated and flexible security
Advantages include:
Scriptable interfaces for easy access
The primary and recommended application programming interface (API) for Active Directory is Active Directory Service Interfaces (ADSI). ADSI enables access to Active Directory by exposing objects stored in the directory as COM objects. A directory object is manipulated using the methods on one or more COM interfaces. You can already get ADSI providers from Microsoft for Novell NetWare Directory Services (NDS) and NetWare 3, Windows NT®, the Lightweight Directory Access Protocol (LDAP), Exchange 5.5, and the Internet Information Server (IIS) metabase. ADSI can be used from any tools from Microsoft Office applications to C/C++. ADSI supports extensibility so that additional functionality can be added to a provider to support new properties and methods. ADSI has a very simple programming model. ADSI abstracts the data management overhead that is characteristic of non-COM interfaces such as the LDAP C APIs . Since ADSI is fully scriptable, it easy to develop rich Web applications. ADO and OLE DB are supported for querying. Several tools make it easy to create an ADO or OLE DB connection and get results. By supporting ADO and OLE DB, Active Directory is just another OLE DB data provider.
Directory enabled system services
The ZAW technologies are written to take advantage of Active Directory. By creating an MSI package and using the application deployment feature of Windows 2000, your client application can be easily deployed to many desktops.
Key application integration
Key distributed applications such as Exchange will be tightly integrated with Active Directory. By doing so, companies can reduce the number of directory services that need to be managed.
Rich and extensible schema
The schema defines what objects and properties can be written and read from a directory service. Active Directory's schema is very rich. Most of the objects and properties a service needs are probably already there. If not, a distributed application can extend the schema to support the application's additional requirements.