|
|
The IMesh Toolkit
[ Work In Hand > Technology Review > Standards and
Protocols ]
Lightweight Directory Access Protocol (LDAP)
|
Overall Purpose
|
| Lightweight Directory Access Protocol is a
lightweight standardised directory access protocol. It runs on
top of TCP/IP. The first widely available version was LDAP
version 2, defined in RFCs 1777 and 1778. LDAP developed out of
the X500 directory service, which was seen to be large, complex
and difficult to implement. |
Brief Overview of Functionality
|
Four models give guidance on the
organisation of data in the directory. The LDAP information model
defines the kind of data that can be put into the directory; the
LDAP naming model defines how directory data is organised and
referred to in the directory; the LDAP functional model defines
how directory information is accessed and updated; the security
model defines how the information can be protected from
unauthorised access. The basic unit of the directory is an entry.
Entries consist of attributes; each attribute has a type and one
or more values. An entry has a globally-unique Distinguished
Name, used to refer to the entry unambiguously. Directory entries
are arranged in a hierarchical tree-like structure. LDAP is a
client/server protocol. The LDAP protocol is message-based.
Clients issue requests to servers (simultaneous multiple requests
can be made) and servers return entries to the client. LDAP has
nine basic protocol operations, divided into three categories:
- Interrogation operations: search, compare
- Update operations: add, delete, modify, modify DN
(rename)
- Authentication and control operations: bind, unbind,
abandon.
|
Deployment
|
APIs
The original LDAP distribution from the University of Michigan
(U-M LDAP) included a C programming library and several sample
client programs built on this library. The LDAP C API for LDAP
version 2 is documented in RFC 1823, and the University of
Michigan Software Development Kit is available at: http://www.umich.edu/~dirsvcs/ldap/.
Other C SDKs are:
A Java API has also been developed by Netscape http://www.mozilla.org (source
code). The API specification is at http://www.ietf.org.
PerlLDAP is available from http://www.mozilla.org. Another
Perl LDAP SDK is Net::LDAP which is available from http://www.perl.com/CPAN.
Accessing multiple directory systems
JavaSoft and Microsoft have proprietary SDKs that define an
interface for accessing multiple directory systems. Microsoft's
ADSI (Active Directory Services Interface) is available for
VisualBasic, C and C++ http://www.microsoft.com. The
Javasoft product JNDI (Java Naming and Directory Interface) is
available from http://www.javasoft.com. A
number of different directory systems can be accessed from a Java
application or applet.
Projects using or investigating LDAP
The Isaac Network
This is a project of the Internet Scout Project team, who are
partners in the IMesh toolkit project. The Isaac Network proposes
to link geographically distributed collections of metadata into a
virtual collection searchable as a unified whole. It uses the
Dublin Core as its standard metadata description format. It aims
to provide a single user interface to the user for sending a
single query, which will reach all relevant subject gateways and
return relevant results back to the user. The Isaac Network is
unique in achieving this goal in that it uses the shared indexing
capabilities of the Common Indexing Protocol (CIP) and the
query-routing capabilities of LDAP. The Isaac system claims to be
the first to use an LDAP directory for metadata records about
resources, and to combine LDAP with CIP in a distributed
index-sharing and query-routing architecture.
Isaac consists of three main software components: the metadata
repository, the search service and the index service. Within the
system, LDAP is operated as follows: The metadata database of the
metadata repository is made accessible via LDAP. Referral
(query-routing) information is kept by each repository. Using the
search service any user (or LDAP application) may have their
queries routed to appropriate repositories and processed in
parallel. This is possible because of the referral capabilities
of the LDAP protocol.
A 1999 paper proposed using LDAP as the basis of a
cataloguer's interface to the system, since LDAP supports add,
delete and modify operations.
TF-LSD (Task Force - LDAP Services Deployment)
A task force has been established within the technical
programme of TERENA [http://www.terena.nl/] the
trans-European Research and Education Networking Association, to
investigate the usability of LDAPv3 as a base for a wide range of
Internet services. TF - LSD will operate for two years from 1st
October 2000.
The major objectives of the TF-LSD [http://www.terena.nl/task-forces/]
are:
- to determine the suitability of the LDAPv3 protocol for
establishing Directory based network and information services for
the research community in Europe;
- to prepare the establishment of the European-wide pilot White
Pages index service;
- to prepare and coordinate the activity to establish a
directory-based Public Key Infrastructure in Europe;
- to define other directory-based services, useful for the
European research community.
|
Related Standards
|
| LDAP runs over a TCP/IP connection. There
is a variety of options for the backend database giving
flexibility in the choice of storage for data. |
Relevance to IMesh context
|
| Use of LDAP for searching metadata has been
demonstrated in the Isaac Network. LDAP is a protocol that could
be used for making resource descriptions (metadata) available in
a directory-based model. |
References
|
Understanding and Deploying LDAP Directory
Services, Howes, T.A., Smith, M.C. and Good, G.S., Macmillan
(1999).
Sample chapter available at:
http://www.computerbooksonline.com/chapters/ldapchap.htm
The Isaac Network: LDAP and Distributed Metadata for Resource
Discovery
http://computer.org/proceedings/meta/1999/papers/46/clukas.html
OpenLDAP version 2 administrator's guide.
http://www.openldap.org/doc/admin/intro.html#What
is LDAP
|
|