2002-06-13 11:59:10 +08:00
|
|
|
.TH LDAP 3 "RELEASEDATE" "OpenLDAP LDVERSION"
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" $OpenLDAP$
|
2004-01-02 03:15:16 +08:00
|
|
|
.\" Copyright 1998-2004 The OpenLDAP Foundation All Rights Reserved.
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH NAME
|
2000-06-16 14:44:25 +08:00
|
|
|
ldap - OpenLDAP Lightweight Directory Access Protocol API
|
2002-06-21 15:32:54 +08:00
|
|
|
.SH LIBRARY
|
2002-06-22 05:25:38 +08:00
|
|
|
OpenLDAP LDAP (libldap, -lldap)
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.ft B
|
|
|
|
#include <ldap.h>
|
|
|
|
.ft
|
|
|
|
.fi
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.LP
|
2003-12-18 10:12:44 +08:00
|
|
|
The Lightweight Directory Access Protocol (LDAP) (RFC 3377) provides
|
|
|
|
access to X.500 directory services. These services may be stand\-alone
|
|
|
|
or part of a distributed directory service. This client API supports
|
|
|
|
LDAP over TCP (RFC2251), LDAP over TLS/SSL, and LDAP over IPC (UNIX
|
|
|
|
domain sockets). This API supports SASL (RFC2829) and Start TLS
|
|
|
|
(RFC2830) as well as a number of protocol extensions. This API is
|
|
|
|
loosely based upon IETF/LDAPEXT C LDAP API draft specification, a (orphaned)
|
|
|
|
work in progress.
|
2000-07-22 09:59:08 +08:00
|
|
|
.LP
|
2001-12-27 08:55:42 +08:00
|
|
|
The OpenLDAP Software package includes a stand\-alone server in
|
1998-08-09 08:43:13 +08:00
|
|
|
.BR slapd (8),
|
|
|
|
various LDAP clients, and an LDAP client library used to provide
|
|
|
|
programmatic access to the LDAP protocol. This man page gives an
|
|
|
|
overview of the LDAP library routines.
|
|
|
|
.LP
|
|
|
|
Both synchronous and asynchronous APIs are provided. Also included are
|
|
|
|
various routines to parse the results returned from these routines.
|
2000-06-16 14:44:25 +08:00
|
|
|
These routines are found in the \-lldap library.
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
2002-01-13 20:55:55 +08:00
|
|
|
The basic interaction is as follows. A session handle is
|
|
|
|
created using
|
|
|
|
.BR ldap_initialize (3)
|
2003-12-18 10:12:44 +08:00
|
|
|
and set the protocol version to 3 by calling
|
|
|
|
.BR ldap_set_option (3).
|
|
|
|
The underlying session is established first operation is
|
|
|
|
issued. This would generally be a Start TLS or Bind operation.
|
|
|
|
A Start TLS operation is performed by calling
|
|
|
|
.BR ldap_start_tls_s (3).
|
|
|
|
A LDAP bind operation is performed by calling
|
2000-07-22 09:59:08 +08:00
|
|
|
.BR ldap_sasl_bind (3)
|
2003-12-18 10:12:44 +08:00
|
|
|
or one of its friends. Subsequently, other operations are performed
|
1998-08-09 08:43:13 +08:00
|
|
|
by calling one of the synchronous or asynchronous routines (e.g.,
|
2000-07-22 09:59:08 +08:00
|
|
|
.BR ldap_search_ext_s (3)
|
1998-08-09 08:43:13 +08:00
|
|
|
or
|
2000-07-22 09:59:08 +08:00
|
|
|
.BR ldap_search_ext (3)
|
1998-08-09 08:43:13 +08:00
|
|
|
followed by
|
|
|
|
.BR ldap_result (3)).
|
|
|
|
Results returned from these routines are interpreted by calling the
|
2000-07-22 09:59:08 +08:00
|
|
|
LDAP parsing routines such as
|
|
|
|
.BR ldap_parse_result (3).
|
|
|
|
The LDAP association and underlying connection is terminated by calling
|
|
|
|
.BR ldap_unbind_ext (3).
|
1998-08-09 08:43:13 +08:00
|
|
|
Errors can be interpreted by calling
|
2000-07-22 09:59:08 +08:00
|
|
|
.BR ldap_err2string (3).
|
2003-12-18 10:12:44 +08:00
|
|
|
.SH LDAP versions
|
|
|
|
This library supports version 3 of the Lightweight Directory Access
|
|
|
|
Protocol (LDAPv3) as defined in RFC 3377. It also supports a varient
|
|
|
|
of version 2 of LDAP as defined by U-Mich LDAP and, to some degree,
|
|
|
|
RFC 1777. Version 2 (all varients) should be viewed as obsolete.
|
|
|
|
Version 3 should be used instead.
|
|
|
|
.LP
|
|
|
|
For backwards compatibility reasons, the library defaults to version 2.
|
|
|
|
Hence, all new applications (and all actively maintained applications)
|
|
|
|
should use
|
|
|
|
.BR ldap_set_option (3)
|
|
|
|
to select version 3. The library manual pages assume version 3
|
|
|
|
has been selected.
|
|
|
|
.SH INPUT and OUTPUT PARAMETERS
|
|
|
|
All character string input/output is expected to be/is UTF\-8
|
|
|
|
encoded Unicode (version 3.2).
|
|
|
|
.LP
|
|
|
|
Distinguished names (DN) (and relative distinguished names (RDN) to
|
|
|
|
be passed to the LDAP routines should conform to RFC 2253. The
|
|
|
|
.BR ldap_explode_dn (3)
|
|
|
|
routines can be used to work with DNs.
|
|
|
|
.LP
|
|
|
|
Search filters to be passed to the search routines are to be
|
2001-12-27 08:55:42 +08:00
|
|
|
constructed by hand and should conform to RFC 2254.
|
2003-12-18 10:12:44 +08:00
|
|
|
.LP
|
|
|
|
LDAP URL are to be passed to routines are expected to conform
|
|
|
|
to RFC 2255.
|
|
|
|
The
|
|
|
|
.BR ldap_url (3)
|
|
|
|
routines can be used to work with LDAP URLs.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH DISPLAYING RESULTS
|
2003-12-18 10:12:44 +08:00
|
|
|
Results obtained from the search routines can be output by hand,
|
1998-08-09 08:43:13 +08:00
|
|
|
by calling
|
|
|
|
.BR ldap_first_entry (3)
|
|
|
|
and
|
|
|
|
.BR ldap_next_entry (3)
|
|
|
|
to step through
|
|
|
|
the entries returned,
|
|
|
|
.BR ldap_first_attribute (3)
|
|
|
|
and
|
|
|
|
.BR ldap_next_attribute (3)
|
|
|
|
to step through an entry's attributes, and
|
|
|
|
.BR ldap_get_values (3)
|
2002-01-13 20:55:55 +08:00
|
|
|
to retrieve a given attribute's values. Attribute values
|
2000-07-22 09:59:08 +08:00
|
|
|
may or may not be displayable.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH UTILITY ROUTINES
|
|
|
|
Also provided are various utility routines. The
|
|
|
|
.BR ldap_sort (3)
|
|
|
|
routines are used to sort the entries and values returned via
|
2001-12-23 04:51:27 +08:00
|
|
|
the ldap search routines.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH BER LIBRARY
|
|
|
|
Also included in the distribution is a set of lightweight Basic
|
|
|
|
Encoding Rules routines. These routines are used by the LDAP library
|
|
|
|
routines to encode and decode LDAP protocol elements using the
|
|
|
|
(slightly simplified) Basic Encoding Rules defined by LDAP. They are
|
2001-08-25 04:17:23 +08:00
|
|
|
not normally used directly by an LDAP application program except
|
2000-07-22 09:59:08 +08:00
|
|
|
in the handling of controls and extended operations. The
|
2001-12-27 08:55:42 +08:00
|
|
|
routines provide a printf and scanf\-like interface, as well as
|
|
|
|
lower\-level access. These routines are discussed in
|
|
|
|
.BR lber\-decode (3),
|
|
|
|
.BR lber\-encode (3),
|
|
|
|
.BR lber\-memory (3),
|
|
|
|
and
|
|
|
|
.BR lber\-types (3).
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH INDEX
|
|
|
|
.TP 20
|
2002-01-13 20:55:55 +08:00
|
|
|
.SM ldap_initialize(3)
|
|
|
|
initialize the LDAP library without opening a connection to a server
|
|
|
|
.TP
|
1998-08-09 08:43:13 +08:00
|
|
|
.SM ldap_result(3)
|
|
|
|
wait for the result from an asynchronous operation
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_abandon_ext(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
abandon (abort) an asynchronous operation
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_add_ext(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
asynchronously add an entry
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_add_ext_s(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
synchronously add an entry
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_sasl_bind(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
asynchronously bind to the directory
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_sasl_bind_s(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
synchronously bind to the directory
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_unbind_ext(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
synchronously unbind from the LDAP server and close the connection
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_unbind_ext_s(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
equivalent to
|
2003-12-18 10:12:44 +08:00
|
|
|
.BR ldap_unbind_ext (3)
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
2002-12-16 15:31:13 +08:00
|
|
|
.SM ldap_memfree(3)
|
1998-12-23 03:08:27 +08:00
|
|
|
dispose of memory allocated by LDAP routines.
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_compare_ext(3)
|
2002-01-13 20:55:55 +08:00
|
|
|
asynchronously compare to a directory entry
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_compare_ext_s(3)
|
2002-01-13 20:55:55 +08:00
|
|
|
synchronously compare to a directory entry
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_delete_ext(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
asynchronously delete an entry
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_delete_ext_s(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
synchronously delete an entry
|
|
|
|
.TP
|
|
|
|
.SM ld_errno(3)
|
|
|
|
LDAP error indication
|
|
|
|
.TP
|
|
|
|
.SM ldap_errlist(3)
|
2002-01-13 20:55:55 +08:00
|
|
|
list of LDAP errors and their meanings
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
|
|
|
.SM ldap_err2string(3)
|
|
|
|
convert LDAP error indication to a string
|
|
|
|
.TP
|
|
|
|
.SM ldap_first_attribute(3)
|
|
|
|
return first attribute name in an entry
|
|
|
|
.TP
|
|
|
|
.SM ldap_next_attribute(3)
|
|
|
|
return next attribute name in an entry
|
|
|
|
.TP
|
|
|
|
.SM ldap_first_entry(3)
|
|
|
|
return first entry in a chain of search results
|
|
|
|
.TP
|
|
|
|
.SM ldap_next_entry(3)
|
|
|
|
return next entry in a chain of search results
|
|
|
|
.TP
|
|
|
|
.SM ldap_count_entries(3)
|
|
|
|
return number of entries in a search result
|
|
|
|
.TP
|
|
|
|
.SM ldap_get_dn(3)
|
|
|
|
extract the DN from an entry
|
|
|
|
.TP
|
|
|
|
.SM ldap_explode_dn(3)
|
2003-12-18 10:12:44 +08:00
|
|
|
convert a DN into its component parts (deprecated)
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
1998-11-05 07:28:51 +08:00
|
|
|
.SM ldap_explode_rdn(3)
|
2003-12-18 10:12:44 +08:00
|
|
|
convert an RDN into its component parts (deprecated)
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
|
|
|
.SM ldap_get_values_len(3)
|
2002-01-13 20:55:55 +08:00
|
|
|
return an attribute's values with lengths
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
|
|
|
.SM ldap_value_free_len(3)
|
|
|
|
free memory allocated by ldap_get_values_len(3)
|
|
|
|
.TP
|
|
|
|
.SM ldap_count_values_len(3)
|
|
|
|
return number of values
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_modify_ext(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
asynchronously modify an entry
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_modify_ext_s(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
synchronously modify an entry
|
|
|
|
.TP
|
|
|
|
.SM ldap_mods_free(3)
|
2003-12-18 10:12:44 +08:00
|
|
|
free array of pointers to mod structures used by ldap_modify_ext(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_rename(3)
|
|
|
|
asynchronously rename an entry
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_rename_s(3)
|
|
|
|
synchronously rename an entry
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
|
|
|
.SM ldap_msgfree(3)
|
|
|
|
free results allocated by ldap_result(3)
|
|
|
|
.TP
|
1998-11-05 07:51:31 +08:00
|
|
|
.SM ldap_msgtype(3)
|
|
|
|
return the message type of a message from ldap_result(3)
|
|
|
|
.TP
|
|
|
|
.SM ldap_msgid(3)
|
|
|
|
return the message id of a message from ldap_result(3)
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_search_ext(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
asynchronously search the directory
|
|
|
|
.TP
|
2003-12-18 10:12:44 +08:00
|
|
|
.SM ldap_search_ext_s(3)
|
1998-08-09 08:43:13 +08:00
|
|
|
synchronously search the directory
|
|
|
|
.TP
|
|
|
|
.SM ldap_is_ldap_url(3)
|
|
|
|
check a URL string to see if it is an LDAP URL
|
|
|
|
.TP
|
|
|
|
.SM ldap_url_parse(3)
|
|
|
|
break up an LDAP URL string into its components
|
|
|
|
.TP
|
|
|
|
.SM ldap_sort_entries(3)
|
|
|
|
sort a list of search results
|
|
|
|
.TP
|
|
|
|
.SM ldap_sort_values(3)
|
|
|
|
sort a list of attribute values
|
|
|
|
.TP
|
|
|
|
.SM ldap_sort_strcasecmp(3)
|
|
|
|
case insensitive string comparison
|
|
|
|
.SH SEE ALSO
|
2002-09-05 05:00:11 +08:00
|
|
|
.BR ldap.conf (5),
|
2002-05-09 10:07:41 +08:00
|
|
|
.BR slapd (8),
|
2001-09-26 01:51:36 +08:00
|
|
|
.BR draft-ietf-ldapext-ldap-c-api-xx.txt \ <http://www.ietf.org>
|
1998-10-25 09:41:42 +08:00
|
|
|
.SH ACKNOWLEDGEMENTS
|
2003-06-29 23:34:32 +08:00
|
|
|
.B OpenLDAP
|
1998-10-25 09:41:42 +08:00
|
|
|
is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).
|
2003-06-29 23:34:32 +08:00
|
|
|
.B OpenLDAP
|
1998-10-25 09:41:42 +08:00
|
|
|
is derived from University of Michigan LDAP 3.3 Release.
|
2001-09-26 01:51:36 +08:00
|
|
|
.LP
|
2003-12-18 10:12:44 +08:00
|
|
|
These API manual pages are loosely based upon descriptions provided
|
|
|
|
in the IETF/LDAPEXT C LDAP API Internet Draft, a (orphaned) work
|
|
|
|
in progress.
|
|
|
|
|