LDAP programmers API - (Manual section 3)
- ldap - LDAP Programming/Developer synopsis
- ldap_open / ldap_init - Initialize the LDAP library and open a connection to an LDAP server
- cldap_close - (OpenLDAP Version 1 only) Dispose of Connectionless LDAP Pointer
- cldap_open - (OpenLDAP Version 1 only) Prepare for Connectionless LDAP Communication
- ldap_bind / ldap_bind_s - LDAP bind routines
- ldap_simple_bind / ldap_simple_bind_s
- ldap_kerberos_bind_s
- ldap_kerberos_bind1 / ldap_kerberos_bind1_s / ldap_kerberos_bind2 / ldap_kerberos_bind2_s
- ldap_unbind / ldap_unbind_s
- ldap_set_rebind_proc
- cldap_search_s - (OpenLDAP Version 1 only) Connectionless LDAP Search
- cldap_setretryinfo - (OpenLDAP Version 1 only) Set Connectionless LDAP Request Retransmission Parameters
- lber-decode - Basic Encoding Rules library routines for decoding
- lber-encode - Basic Encoding Rules library routines for encoding
- ldap_abandon - Abandon an LDAP operation in progress
- ldap_add / ldap_add_s - Perform an LDAP add operation
- ldap_build_filter - LDAP filter generating routines
- ldap_cache - LDAP client caching routines
- ldap_enable_cache
- ldap_disable_cache
- ldap_destroy_cache
- ldap_flush_cache
- ldap_uncache_entry
- ldap_uncache_request
- ldap_set_cache_options
- ldap_charset - (OpenLDAP Version 1 Only) LDAP character set translation routines
- ldap_set_string_translators
- ldap_t61_to_8859
- ldap_8859_to_t61
- ldap_translate_from_t61
- ldap_translate_to_t61
- ldap_enable_translation
- ldap_compare /ldap_compare_s - Perform an LDAP compare operation
- ldap_delete / ldap_delete_s - Perform an LDAP delete operation
- ldap_disptmpl - LDAP display template routines
- ldap_init_templates
- ldap_init_templates_buf
- ldap_free_templates
- ldap_first_disptmpl
- ldap_next_disptmpl
- ldap_oc2template
- ldap_tmplattrs
- ldap_first_tmplrow
- ldap_next_tmplrow
- ldap_first_tmplcol
- ldap_next_tmplcol
- ldap_entry2text - LDAP entry display routines
- ldap_entry2text_search
- ldap_vals2text
- ldap_entry2html
- ldap_entry2html_search
- ldap_vals2html
- ldap_friendly -
LDAP unfriendly to friendly name mapping routine
- ldap_friendly_name
- ldap_free_friendlymap
- ldap_getfilter -
LDAP filter generating routines
- ldap_init_getfilter
- ldap_init_getfilter_buf
- ldap_getfilter_free
- ldap_getfirstfilter
- ldap_getnextfilter
- ldap_build_filter
- ldap_setfilteraffixes
- ldap_modify / ldap_modify_s / ldap_mods_free - Perform an LDAP modify operation
- ldap_modrdn -
- ldap_modrdn_s
- ldap_modrdn2
- ldap_modrdn2_s
- ldap_result / ldap_msgfree - Wait for the result of an LDAP operation
- ldap_search -
Perform an LDAP search operation
- ldap_search_s
- ldap_search_st
- ldap_searchprefs - LDAP search preference configuration routines
- ldap_init_searchprefs_buf
- ldap_free_searchprefs
- ldap_first_searchobj
- ldap_next_searchobj
- ldap_ufn -
Perform an LDAP user friendly search operation
- ldap_ufn_search_s
- ldap_ufn_search_c
- ldap_ufn_search_ct
- ldap_ufn_setfilter
- ldap_ufn_setfilter
- ldap_ufn_setprefix
- ldap_ufn_timeout
- ldap_url -
LDAP Uniform Resource Locator routines
- ldap_is_ldap_url
- ldap_url_parse
- ldap_free_urldesc
- ldap_url_search
- ldap_url_search_s
- ldap_url_search_st
- ldap_sort -
LDAP sorting routines
- ldap_sort_entries
- ldap_sort_values
- ldap_sort_strcasecmp
- ldap_first_attribute / ldap_next_attribute - step through LDAP entry attributes
- ldap_count_entries / ldap_first_entry / ldap_next_entry - LDAP result entry parsing and counting routines
- ldap_count_values - LDAP attribute value handling routines
- ldap_get_values
- ldap_get_values_len
- ldap_value_free
- ldap_value_free_len
- ldap_dn2ufn - LDAP DN handling routines
- ldap_get_dn
- ldap_explode_dn
- ldap_is_dns_dn
- ldap_explode_dns
- ldap_error - LDAP protocol error handling routines
- ldap_perror
- ld_errno
- ldap_result2error
- ldap_errlist
- ldap_err2string
Internet Draft (Obsoletes RFC 1823) - The LDAP Application Program Interface (API) for software developers
- 1274 - The COSINE and Internet X.500 Directory Schema (Naming Architecture)
- 1275 - Replication Requirements to provide an Internet Directory using X.500
- 1279 - X.500 and Domains
- 1308 - Introduction to Directory Services Using the X.500 Protocol
- 1309 - Overview of Directory Services Using the X.500 Protocol
- 1430 - Plan for Deploying an Internet X.500 Directory Service
- 1558 - String Representation of LDAP Search Filters
- 1617 - Naming and Structuring Guidelines for X.500 Directory Pilots
- 1777 - Lightweight Directory Access Protocol
- 1778 - The String Representation of Standard Attribute Syntaxes (Replaced by RFC 2559)
- 1779 - A String Representation of Distinguished Names (dn) (Replaced by RFC 2253)
- 1781 - Using the OSI Directory to Achieve User Friendly Naming
- 1798 - Connection-less Lightweight Directory Access Protocol
- 1823 - The LDAP Application Program Interface (API) for software developers. (See new internet draft)
- 1959 - An LDAP URL Format (Replaced by RFC 2255)
- 1960 - A String Representation of LDAP Search Filters (Replaced by RFC 2254)
- 2044 - UTF-8, a transformation format of Unicode and ISO 10646
- 2164 - Use of an X.500/LDAP directory to support MIXER address mapping
- 2218 - A Common Schema for the Internet White Pages Service
- 2247 - Using Domains in LDAP/X.500 Distinguished Names
- LDAP V3 (most pertinent)
- 2251 - Lightweight Directory Access Protocol (v3)
- 2252 - Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions
- 2253 - Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names
- 2254 - The String Representation of LDAP Search Filters
- 2255 - The LDAP URL Format
- 2256 - A Summary of the X.500(96) User Schema for use with LDAPv3
- 2279 - UTF-8, a transformation format of ISO 10646
- 2293 - Representing Tables and Subtrees in the X.500 Directory
- 2294 - Representing the O/R Address hierarchy in the X.500 Directory Information Tree
- 2307 - An Approach for Using LDAP as a Network Information Service
- 2377 - Naming Plan for Internet Directory-Enabled Application
- 2559 - Internet X.509 Public Key Infrastructure Operational Protocols - LDAPv2
- 2586 - Internet X.509 Public Key Infrastructure LDAPv2 Schema
- 2596 - Use of Language Codes in LDAP
- 2649 - An LDAP Control and Schema for Holding Operation Signatures
- 2657 - LDAPv2 Client vs. the Index Mesh
- 2696 - LDAP Control Extension for Simple Paged Results Manipulation
- 2713 - Schema for Representing Java(tm) Objects in an LDAP Directory
- 2714 - Schema for Representing CORBA Object References in an LDAP Directory
- 2739 - Calendar Attributes for vCard and LDAP
- 2798 - Definition of the inetOrgPerson LDAP Object Class (Netscape Messenger Address Book)
- 2820 - Access Control Requirements for LDAP
- 2829 - Authentication Methods for LDAP
- 2849 - The LDAP Data Interchange Format (LDIF) - Technical Specification
- 2891 - LDAP Control Extension for Server Side Sorting of Search Results
- 2926 - Conversion of LDAP Schemas to and from SLP Templates
- 2927 - MIME Directory Profile for LDAP Schema
- 3045 - Storing Vendor Information in the LDAP root DSE
- 3062 - LDAP Password Modify Extended Operation
- 3088 - OpenLDAP Root Service An experimental LDAP referral service
- rfc4515: String Representation of LDAP Search Filters
- rfc4517: LDAP Syntaxes and Matching Rules
System pre-requisites:
Install the following packages with apt-get install package-name
(Example for Ubuntu hardy 8.04)
- OpenLDAP dependancies:
- libdb4.3
- libdb4.3-dev
- openssl
- GNU development tools:
- build-essentials
- make
- gcc
- autoconf
- automake
- texinfo
- libtool
Compiling OpenLDAP:
Download tarball from http://www.openldap.org/software/download/
- Untar: tar xzf openldap-VERSION.tgz
- cd openldap-VERSION
- Test and configure development environment: ./configure --prefix=/opt
- Generate dependancies: make depend
- Compile and link: make
- Optional: make test
- Install: sudo make install
This should create the executables and libraries provided by the packages slapd, ldap-utils, libldap and libldap2-dev
Running your custom compiled ldap server:
/opt/libexec/slapd -f /opt/etc/ldap/slapd.conf -u openldap -g openldap -d 32768 &[Potential Pitfall]: The fix for the following error:
checking for db.h... no configure: error: BDB: BerkeleyDB not availableis to install the package libdb4.3-dev.
- Open LDAP: Programming
- SourceForge: Python-LDAP
- SourceForge: PERL-LDAP
- Internet Assignment Number Authority (IANA) - OID assignment
- A Layman's Guide to a Subset of OSI's Abstract Syntax Notation One (ASN.1), Basic Encoding Rules (BER), and Distinguished Encoding Rules (DER)
- Perldap - LDAP-PERL relationship, PERL SDK
- Perl-LDAP Home page
- DSML: Markup language for directories
- Javasoft API for LDAP: javax.naming.ldap
- OpenLDAP Tutorial main page: Installation, configuration, examples and links
- OpenLdap 2.x - SLAPD and LDIF configuration
- OpenLdap 1.2 - SLAPD and LDIF configuration
- LDAP Authentication and user passwords - Adding password protection.
- OpenLdap 1.2 Group security example - SLAPD and LDIF configuration
- Create a new custom object by extending the inetOrgPerson schema
- OpenLDAP 2.x Schema Extension to support MS/Outlook, Netscape 4.5+, PAM,.. (GILSE)
- LDAP admin support scripts and code snippets
- LDAP Software development SDK man pages, RFC's and Links
- aWebDap - A simple, flexible web front end supporting multiple domains designed for the non-technical user. My favorite, but hey, I wrote it!!
"Understanding And Deploying LDAP Directory Services",
by Timothy A. Howes,Phd, Mark C. Smith and Gordon S. Good, ISBN 0672323168, Addison-Wesley Pub Co Second edition. It is general in nature but complete in that it covers all concepts in depth. It is a good book for those wanting to understand everything about LDAP, schema development and its' capabilities. |
|
|
"Understanding And Deploying LDAP Directory Services",
by Timothy A. Howes,Phd, Mark C. Smith and Gordon S. Good, ISBN 1-57870-070-1, MacMillan Technical Publishing This is the largest LDAP book I own. It is general in nature but complete in that it covers all concepts in depth. It is NOT a good programmers reference but it is good for those wanting to understand everything about LDAP and its' capabilities. |
|
|
"Programming Directory-Enabled Applications with Lightweight Directory
Access Protocol"
by Timothy A. Howes,Phd and Mark C. Smith ISBN 1-57870-000-0, MacMillan Technical Publishing Excellent programmers reference for those using the LDAP C language API. Also covers search filters and LDAP URL's. The OpenLDAP source code is so poorly commented that I found this book often was the only source for an explainion of what was happinging in the code. |
|
|
"Implementing LDAP",
Mark Wilcok ISBN 1-861002-21-1, WROK Press This book covers all aspects of LDAP from LDIF to the LDAP SDK in C, PERL and JAVA. It has a strong Netscape Directory server bias. |
|
|
"LDAP System Administration",
Gerald Carter ISBN 1565924916, O'Reilly & Associates This book covers the use of OpenLDAP and the integration of services. |
|
|
"LDAP Programming, Management and Integration",
Clayton Donley ISBN 1930110405, Manning Publications; 1st edition This book covers LDAP administration as well as introductory information. It covers the directory services markup language (DSML), PERL LDAP module as well as JAVA JNDI. |
|
|
"Understanding LDAP - Design and Implementation" - IBM-Redbooks
Heinz Johner, Larry Brown, Franz-Stefan Hinner, Wolfgang Reis, Johan Westman IBM Redbook #SG24-4986-00 A reference to ldap, available as PDF as well. This book has a bias towards IBM's E-network LDAP Directory server. Tight, terse, but covers everything. |
||
"LDAP Implementation and Practical Use"
IBM Redbook #SG24-6193-00 |