Table of Contents - LDAP: Programming Directory-Enabled Applications with Lightweight Directory Access Protocol


 1. Introduction.

Organization.
How to Use This Book.
What Is a Directory?
What a Directory Service is Not.
Directory Enabled Applications.
Why LDAP?
Getting Down to Business.

2. A Quick Start Guide to LDAP Programming.
Setting Up Your Environment.
Microsoft Windows.
Macintosh.
UNIX.
A Simple Search Example.
A Simpler Search Example.
An Update Example.
Looking Ahead.

3. The LDAP Models.
A Brief History of LDAP.
Overview of the LDAP Models.
Information Model.
Naming Model.
Distinguished Names.
Functional Model.
Security Model.
Referrals in LDAP.
From Theory to Practice.
Looking Ahead.

4. Preparing to Program with LDAP.
LDAP Software Development Kits (SDKs).
Using the LDAP SDK in a Microsoft Windows Environment.
Using the LDAP SDK in a Macintosh Environment.
Using the LDAP SDK in a UNIX Environment.
A Word About LDAP Directory Servers.
Looking Ahead.

5. Overview of the LDAP API.
The Core LDAP Functions.
Typical Use of the LDAP Library.
Step 1: Initialize the Library and Obtain a Session Handle.
Step 2: Initiate an LDAP Operation and Wait for Results.
Step 3: Process the Result(s).
Step 4: Dispose of the LDAP Session Handle.
Synchronous versus Asynchronous Use of the LDAP API.
Looking Ahead.

6. Initialization and Configuration.
Creating and Disposing of an LDAP Session.
Creating an LDAP Session and Opening a Server Connection.
Setting Options That Affect an LDAP Session.
Retrieving Current Settings of LDAP Session Options.
Summary.
Looking Ahead.

7. LDAP Programming with Threads.
General Threading Issues.
LDAP Thread Call-Backs.
Threads Programming Example.
Main Program.
Search Thread.
Modify Thread.
Support Routines.
Summary.
Looking Ahead.

8. Handling Errors.
Functions That Return an LDAP Error Code.
Converting Error Codes into Error Messages.
Checking Errors Contained Within an LDAP Result.
All of the LDAP Error Codes.
Summary.
Looking Ahead.

9. Search.
Synchronous Searching.
Additional Search Parameters.
Retrieving No Attributes.
Searching with a Time Limit.
Basic Result Parsing.
Retrieving Individual Entries.
Getting the Name of an Entry.
Retrieving the Attributes of an Entry.
Retrieving the Values of an Attribute.
Representing Binary Values.
Asynchronous Searching.
Asynchronous Programming Example.
Summary.
Looking Ahead.

10. Search Filters.
Search Filters.
Search Filters Explained.
Search Filters Defined.
Automatic Filter Generation.
Summary.
Looking Ahead.

11. Distinguished Names and Sorting.
A Friendly Way to Display Distinguished Names.
Breaking Up a Distinguished Name into Its Component Parts.
Sorting Entries.
Sorting Attribute Values.
Summary.
Looking Ahead.

12. Compare.
Compare versus Search.
Comparing Entries (Synchronous).
Comparing Entries (Asynchronous).
Summary.
Looking Ahead.

13. Authentication.
LDAP and Secure Sockets Layer (SSL).
Simple Password Based Authentication (Synchronous).
Simple Password Authentication (Asynchronous).
The General Authentication Functions.
Handling LDAP Re-Binds.
Summary.
Looking Ahead.

14. Update.
Modifying Entries (Synchronous).
The LDAPMod Structure.
Modifying Entries (Asynchronous).
Asynchronous Programming Example.
Adding Entries (Synchronous).
Synchronous Add Example.
Adding Entries (Asynchronous).
Deleting Entries (Synchronous).
Synchronous Delete Example.
Deleting Entries (Asynchronous).
Changing the Name of an Entry (Synchronous).
Name Change Example.
Changing the Name of an Entry (Asynchronous).
Summary.
Looking Ahead.

15. LDAP URLs.
An Introduction to LDAP URLs.
Using LDAP URLs to Perform Searches.
Breaking Up an LDAP URL into Its Component Pieces.
Summary.
Looking Ahead.

16. Using the LDAP API to Build an Application.
The Main Program.
Initialization.
Add.
Bind.
Delete.
List.
Read.
Search.
Miscellaneous Routines.
Sample Session.
Summary.
Looking Ahead.

17. LDAP Command Line Tools.
Overview.
The ldapsearch Tool.
Detailed Explanation of ldapsearch Command Line Parameters.
The LDAP Data Interchange Format (LDIF).
The ldapmodify and ldapadd Tools.
Detailed Explanation of ldapmodify and ldapadd Command Line Parameters.
Format of Change Information.
Changetype: add.
Changetype: modify.
Changetype: delete.
Changetype: modrdn.
The ldapdelete Tool.
Detailed Explanation of the ldapdelete Command Line Parameters.
The ldapmodrdn Tool.
Detailed Explanation of the ldapmodrdn Command Line Parameters.
Using the LDAP Tools over SSL.
Summary.
Looking Ahead.

18. Using the Command Line Tools to Build Applications.
Looking Ahead.

19. Future Directions.
LDAP Version 3.
Information Model.
Schema.
Security.
Internationalization.
Referrals.
Search.
Extensibility.
Beyond LDAPv3.
The Future of Directories.
Better Living Through Directories.

A. LDAP Resources.
General LDAP Resources.
LDAP Software and SDKs.
Public Internet Mailing Lists.
Technical Papers.
RFCs and Internet Drafts.
X.500 and OSI Related Resources.

B. LDAP API Reference.
LDAP API Functions.
Application Defined Functions.
Structures.

C. Lightweight Directory Access Protocol.
Status of This Memo.
Abstract.
History.
Protocol Model.
Mapping onto Transport Services.
Elements of Protocol.
Protocol Element Encodings.
Security Considerations.
Bibliography.
Author's Addresses.

D. A String Representation of Standard Attribute Syntaxes.
Status of This Memo.
Abstract.
Attribute Syntax Encoding Requirements.
Standard Attribute Syntax Encodings.
Security Considerations.
Acknowledgements.
Bibliography.
Authors' Addresses.

E. A String Representation of Distinguished Names.
Status of This Memo.
Abstract.
Why a Notation is Needed.
A Notation for Distinguished Name.
Examples.
Acknowledgements.
References.
Security Considerations.
Author's Address.

F. An LDAP URL Format.
Status of This Memo.
Abstract.
URL Definition.
Examples.
Security Considerations.
Prototype Implementation Availability.
Bibliography.
Acknowledgements.
Authors' Addresses.

G. A String Representation of LDAP Search Filters.
Status of This Memo.
Abstract.
LDAP Search Filter Definition.
String Search Filter Definition.
Examples.
Security Considerations.
Bibliography.
Author's Address.

Index.