<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->

<book xml:id="book.ldap" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
 <?phpdoc extension-membership="bundledexternal" ?>
 <title>Lightweight Directory Access Protocol</title>
 <titleabbrev>LDAP</titleabbrev>

 <!-- {{{ preface -->
 <preface xml:id="intro.ldap">
  &reftitle.intro;
  <para>
   LDAP is the Lightweight Directory Access Protocol, and is a
   protocol used to access "Directory Servers". The Directory is a
   special kind of database that holds information in a tree
   structure.
  </para>
  <para>
   The concept is similar to your hard disk directory structure,
   except that in this context, the root directory is "The world"
   and the first level subdirectories are "countries". Lower levels
   of the directory structure contain entries for companies,
   organisations or places, while yet lower still we find directory
   entries for people, and perhaps equipment or documents.
  </para>
  <para>
   To refer to a file in a subdirectory on your hard disk, you might
   use something like:
  </para>
  <literallayout>
   /usr/local/myapp/docs
  </literallayout>
  <para>
   The forwards slash marks each division in the reference, and the
   sequence is read from left to right.
  </para>
  <para>
   The equivalent to the fully qualified file reference in LDAP is
   the "distinguished name", referred to simply as "dn". An example
   dn might be:
  </para>
  <literallayout>
   cn=John Smith,ou=Accounts,o=My Company,c=US
  </literallayout>
  <para>
   The comma marks each division in the reference, and the sequence
   is read from right to left. You would read this dn as:
  </para>
  <literallayout>
   country = US
   organization = My Company
   organizationalUnit = Accounts
   commonName = John Smith
  </literallayout>
  <para>
   In the same way as there are no hard rules about how you organise
   the directory structure of a hard disk, a directory server
   manager can set up any structure that is meaningful for the
   purpose. However, there are some conventions that are used. The
   message is that you can not write code to access a directory
   server unless you know something about its structure, any more
   than you can use a database without some knowledge of what is
   available.
  </para>
  <para>
   Lots of information about LDAP can be found at
  </para>

  <itemizedlist>
   <listitem>
    <para>
     <link xlink:href="&url.ldap.netscape;">Mozilla</link>
    </para>
   </listitem>
   <listitem>
    <para>
     <link xlink:href="&url.ldap.openldap;">OpenLDAP Project</link>
    </para>
   </listitem>
   <listitem>
    <para>
     Internet Engineering Taskforce RFCs <link xlink:href="&url.rfc;rfc4510">4510</link> through <link xlink:href="&url.rfc;rfc4519">4519</link>.
    </para>
   </listitem>
  </itemizedlist>

  <para>
   The Netscape SDK contains a helpful
   <link xlink:href="&url.ldap.netscape.sdk.docs;">Programmer's Guide</link> in
   HTML format.
  </para>
 </preface>
 <!-- }}} -->

 &reference.ldap.setup;
 &reference.ldap.constants;
 &reference.ldap.using;
 &reference.ldap.controls;
 &reference.ldap.examples;
 &reference.ldap.reference;
 &reference.ldap.ldap.connection;
 &reference.ldap.ldap.result;
 &reference.ldap.ldap.resultentry;

</book>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

