bnelson.com Home Page



















 

What Is LDAP?

(An excerpt from Understanding and Deploying LDAP Directory Services)

At its core, LDAP is a standard, extensible directory access protocol—a common language that LDAP clients and servers use to communicate with each other. Standardization of the protocol has the benefit that client and server software from different vendors can interoperate. When you buy an LDAP-enabled program, you can expect that it will work with any standards-compatible LDAP server. This has many advantages.

LDAP is a “lightweight” protocol, which means that it is efficient, straight-forward, and easy to implement, while still being highly functional. Contrast this with a “heavyweight” protocol, such as the X.500 Directory Access Protocol (DAP). X.500 DAP uses complex encoding methods and requires use of the OSI network protocol stack—a networking system that has failed to gain wide acceptance.

LDAP, on the other hand, uses a simplified set of encoding methods and runs directly on top of TCP/IP. Every major desktop and server computing platform currently available (Microsoft Windows, DOS, UNIX, and the Apple Macintosh) either ships with a TCP/IP implementation or can be easily equipped with one. OSI networking, on the other hand, is not universally available, and it is almost always an extra-cost option. LDAP, by virtue of its light weight, removes significant barriers to implementation and deployment.

There have been two major revisions of the LDAP protocol. The first widely available version was LDAP version 2, defined in RFCs 1777 and 1778. As of this writing, LDAP version 3 is a Proposed Internet Standard, defined in RFCs 2251 through 2256. Because it is so new, not all vendors completely support LDAPv3 yet. As we discuss LDAP, we will focus our discussion on LDAPv3. However, we will point out new features found only in LDAPv3 so that you can understand the limitations you will encounter if you are using LDAPv2.

In addition to its role as a network protocol, the LDAP standards also define four models that guide you in your use of the directory. These models promote interoperability between directory installations while still allowing you the flexibility to tailor the directory to your specific needs. The models borrow con-cepts from X.500, but they generally lack many of the restrictions that the X.500 models include. The four LDAP models are as follows:

• The LDAP information model, which defines the kind of data you can put into the directory.
• The LDAP naming model, which defines how you organize and refer to your directory data. • The LDAP functional model, which defines how you access and update the information in your directory.
• The LDAP security model, which defines how information in the directory can be protected from unauthorized access.

In addition to guiding you in the use of your directory, the LDAP models guide directory developers when designing and implementing LDAP server and client software.

There are several LDAP APIs, the oldest of which is for the C programming language. The C API is supported by several freely available software development kits (SDKs), including one available in binary and source code format from Netscape Communications Corporation. In addition to the C API, Netscape’s freely available Java SDK (also available in binary and source code formats) supports all LDAPv3 features. Netscape also provides PerLDAP, a toolkit for the Perl language that allows you to access LDAP directories.

SunSoft’s JNDI is a proprietary, unified directory access API that supports access to multiple types of directory services (NIS+, LDAP, and others). Microsoft offers its own proprietary unified directory access API, known as Active Directory Services Interface (ADSI).

LDAP also defines the LDAP Data Interchange Format (LDIF), a common, text-based format for describing directory information. LDIF can describe a set of directory entries or a set of updates to be applied to a directory. Directory data can also be exported from one directory and into another using LDIF. Most of the commonly available command-line utilities also read and write LDIF.

Click here for more information on ordering this book or click here to continue reading on this subject.

Papers:

Vendors:

Organizational Bodies (Get Involved):

Case Studies:

Useful RFCs:

A Naming Scheme for c=US RFC 1255
Universal Resource Identifiers in WWW RFC 1630
A Revised Catalog of Available X.500 Implementations RFC 1632
Uniform Resource Locators (URL) RFC 1738
Lightweight Directory Access Protocol (v2) RFC 1777
The String Representation of Standard Attribute Syntaxes (v2) RFC 1778
A String Representation of Distinguished Names RFC 1779
The LDAP Application Program Interface RFC 1823
Building an X.500 Directory Service in the US RFC 1943
An LDAP URL Format RFC 1959
A String Representation of LDAP Search Filters RFC 1960
Use of an X.500/LDAP directory to support MIXER address mapping RFC 2164
Using Domains in LDAP/X.500 Distinguished Names RFC 2247
Lightweight Directory Access Protocol (v3) RFC 2251
Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions RFC 2252
Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names RFC 2253
The String Representation of LDAP Search Filters RFC 2254
The LDAP URL Format RFC 2255
A Summary of the X.500(96) User Schema for use with LDAPv3 RFC 2256
An Approach for Using LDAP as a Network Information Service RFC 2307
Definition of the inetOrgPerson LDAP Object Class RFC 2798

Useful Resources:

Accessing LDAP from Server-Side JavaScript
Directories and LDAP - Universal Access to Directory Information
LDAP Command-Line Utilities
Netscape Directory Server Plug-In Programmer's Guide
A SuiteSpot Deployment Diary
Netscape Directory and LDAP Developer Central  
Netscape Directory SDK (Information & Download)
Netscape Directory SDK: Source Code Release  
iPlanet Directory Server Documentation Page
iPlanet Directory Server Deployment Guide (version 4.1)
iPlanet Directory Server Administrator Guide
iPlanet Directory Server Schema Reference (4.0)
IBM SecureWay Directory Schema (HTML)
Managing Access Control with the iPlanet Directory Server
iPlanet Online Support  

Other useful books from Amazon.com:

Understanding and Deploying Ldap Directory Services  Ldap : Programming Directory-Enabled Applications With Lightweight Directory Access Protocol Directory Enabled Networking Implementing LDAP
Implementing Directory Services (Enterprise Computing) Understanding Directory Services All About Network Directories: Understanding Directory Services and Business Applications
Big Book of Lightweight Directory Access Protocol (Ldap) Rfcs JNDI API Tutorial and Reference: Building Directory-Enabled Java Applications LDAP Programming with Java Building an Enterprise Active Directory(tm) Notes from the Field