Synopses & Reviews
Two years ago, the Internet Engineering Task Force began studying directory protocols, searching for a solution to outdated protocols. That search prompted the creation of LDAP, the new protocol for inter-network directory services. Since that time, Microsoft, Netscape, IBM, Novell and other companies have adopted LDAP as a complete directory services solution. This is the essential resource for programmers, software engineers, and network administrators who need to understand and implement LDAP to keep software applications compliant. If you design or program software for network computing or are interested in directory services, LDAP: Programming Directory-Enabled Applications with Lightweight Directory Access Protocol is an essential resource to help you understand the LDAP API; learn how to write LDAP programs; understand how to LDAP-enable an existing application; and learn how to use a set of command-line LDAP tools to search and update directory information.
Synopsis
Two years ago, the Internet Engineering Task Force began studying directory protocols, searching for a solution to outdated protocols. That search prompted the creation of LDAP, or Lightweight Directory Access Protocol, the new protocol for inter-network directory services. Since that time, Microsoft, Netscape, IBM, Novell and other companies have adopted LDAP as a complete directory services solution. This is the essential resource for programmers, software engineers, and network administrators who need to understand and implement LDAP to keep software applications compliant.
-- Features an overview of the LDAP standard, its creation and history
-- Covers trends in compliance: who is moving to LDAP and when
-- Provides answers on data packet handling in C++ for programming LDAP directories
-- Examines client/server responsibilities, future implementations, and much more
Table of Contents
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. I 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 I 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. Syhnchronous 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. Breading 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 Itsl 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 Command Line. Parameters. The ldapmodrdnTool. Detailed Explanation of the ldap modrdn 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. @AHEADS = and OSI Related Resources. B LDAP API Reference. LDAP API Functions. ber_free(). ber_bvecfree(). ldap_aband on(). ldap_add_s(). ldap_bind(). ldap_bind_s(). ldap_compare(). ldap_compare_s(). ldap_count(). ldap_count_entries(). ldap_count_values(). ldap_count_values_len(). ldap_delete_. ldap_delete_s(). ldap_dn2ufn(). ldap_err2string(). ldap_explode_dn(). ld ap_explode_rdn(). ldap_first_attribute(). ldap_first_entry(). ldap_free_urldesc(). ldap_get_dn(). ldap_getfilter_free(). ldap_getfirstfilter(). ldap_getmsgid(). ldap_get_lderrno(). ldap_getnextfilter(). ldap_get_option(). ldap_get_values(). ldap_get_ values_ len(). ldap_init(). ldap_init_getfilter(). ldap_init_getfilter_ buf(). ldap_is_ldap_url(). ldap_memfree(). ldap_msgfree(). ldap_modify(). ldap_modify_s(). ldap_modrdn2(). ldap_modrdn2_s(). ldap_next_attribute(). ldap_next_entry(). ldap_open(). ldap_perror(). ldap_result(). ldap_result2error(). ldap_search(). ldap_search_s(). ldap_search_st(). ldap_set_option(). ldap_set_rebind_ proc(). ldap_simple_bind(). ldap_simple_bind_s(). ldap_sort_entries(). ldap_sort_values(). ldap_sort_strcasecmp (). ldap_unbind(). ldap_url_parse(). ldap_url_search(). ldap_url_search_s(). ldap_url_search_st(). ldap_value_free(). ldap_value_free_len(). Application Defined Functions. rebindproc(). Structures. struct berval. struct ldap_filt_info. struct LDAPMod. struct ldap_thread_fns. struct LDAPURLDesc.
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.