LDAP

Was ist LDAP ?

Ein Verzeichnis (Directory) ist eine hierarchische Datenbank, die für einfache Abfrageoperationen (Query) optimiert ist. Es wird hauptsächlich zur Speicherung von Benutzerinformationen verwendet.

LDAP steht für Lightweight Directory Access Protocol.

Einsatzgebiete von LDAP

Beispiele:

Eigenschaften

Vorteile von LDAP

Grundbegriffe

Darstellung der Informationen durch Objekte, Objekte sind Exemplare von Klassen, Klassen sind in einer Vererbungshierarchie

Entry
Ein Eintrag besteht aus einer Menge von Attributen (beschreibender Name und einem OID (Objectidentifikation)
Attributtyp
Atributtyp beschreibt die Syntax und die Werte, die ein Attribut annehmen duerfen.
objectClass-Attribut
Jeder entry muß so eines haben. Dieses kann nicht geändert werden.
Directory Information Tree (DIT)
hierarchisch organisiertes DIB Directory Information Base [RFC4512]
Distinguished Name (DN)
eindeutiger Name eines Eintrags
Directory nach X500
eine Ansammlung von offenen Systemen die zusammen den Verzeichnisdienst erbringen [RFC4512]
DIB - Directory Information Base
die Gesamtheit des im verteilte Verzeichnis enthaltenen Information [RFC4512]
DUA - Directory User Agent
Client [RFC4512]
DSA Directory System Agents
ein Server, der einen Teil des DIB enthält [RFC4512]

Es können Filter angegeben werden, um die Herausgabe von Information seitens des Servers zu beschränken.

Links zu LDAP an sich

RFCS
RFC4510: "Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map ", OpenLdap 2006
beschreibt LDAPv3 und erklärt die folgenden RFCs sowie dass Datenmodelle nach X500(1993) der ITU-T und Dienstmodelle X501/X511 auch erfüllt werden müssen.
(ersetzt die bisherige LDAP-Spezifikation RFCs 2251-2256, 2829, 2830, 3771, und 3377)
RFC4511 : The Protocol
  • Protokoll wird in ASN.1 spezifiziert und mit BER codiert
RFC4512 : Directory Information Models
beschreibt das X500-Verzeichnisinformationsmodell, wie es in LDAP genutzt werden soll.
  • Jeder Knoten des DIT kann enthalten:
    • User-Information, die eigentlichen Nutzdaten
    • Verwaltungsinformation z.B. Zugriffsrechte
  • Jeder Knoten hat einen RDN-Relative Distinguished Name, bestehend aus AVA - Attribue Value Assertion z.B. OU=Engineering.
    Ein Knoten kann mehrere solche AVAs haben (multivalued).
  • Distinguished Name eines Knotens ist der RDN verbunden mit dem DN des Vorgängerknotens
  • Ein Schema kann beschrieben werden (Beispiele in /etc/openldap/schema bei einem Openldap-Server
RFC4513 : Authentication Methods and Security Mechanisms
RFC4514 : String Representation of Distinguished Names
RFC4515 : String Representation of Search Filters
RFC4516 : Uniform Resource Locator
RFC4517 : Syntaxes and Matching Rules
RFC4518 : Internationalized String Preparation
RFC4519 : Schema for User Applications
definiert gebräuchliche Attribute

historische Entwicklung

Legend:
   STD	Standard
   DS	Draft Standard
   PS	Proposed Standard
   I	Information
   E	Experimental
   FYI	For Your Information 
   BCP	Best Common Practice
   
LDAP-Implementation-HOWTO 2001
LDAP-HOWTO
LDAPv3 HOWTO
mit OpenLDAP, OpenSSL, SASL and KerberosV
LDAP-FAQ
An LDAP Roadmap & FAQ
eine ausführliche Sammlung zu LDAP, inbesondere die Roadmap scheint sehr interessant
http://ldapman.org/
möchte ein Startpunkt zur LDAP_Dokumentation im WWW sein.
http://www.range.net/ldap/

Schemata

Aufbau des Verzeichnisbaums, bzw. der Distinguished Names (DN) als Pfad im Baum

Internet-Style DN
die meist significanten DN-Komponenten sind dc domain components von registrierten Internet-Domains (aus DNS),
Beispiel: uid=rw,dc=infnet,dc=verein,dc=de
(aus OpenLDAP FAQ)
vgl RFC2247: Using Domains in LDAP DNs (PS)
Traditionelle X500 organisatorische DNs
nutzen geopolitische und organisatorische Namen, die durch nationale bzw. deligierte Institutionen registriert sind.
Beispiel: cn=Heinz Mayer o=Stadtverwaltung o=Ravensburg c=de
(aus OpenLDAP FAQ)

RFCS für Schemata

Links zu LDAP-Schemata

LDAP-Schema-Viewer
Online-Auskunftssystem über LDAP-Schemas, welche Attribute welche Klasse haben muß usw.
LDAP-Examples von PADL.com
Beispiel für diverse Objekte (User,Group,MailAlias,Mount,Service,RPC,Host,Network)

Ldiff - LDAP Interchange format

siehe RFC2849,RFC4525 und [WP]

Einbettung in Systeme

Siehe auch PAM

Implementierungen

Anwendungen, die auf LDAP zugreifen

Dienste

ldap-smb-HEAD-howto
LDAP mit Sendmail
Der WWW-Proxy Squid
Configuring Netscape roaming with OpenLDAP

Clients

Bibliotheken

Arbeitsmodi des OpenLDAP Servers

Öffentliche LDAP_Server

ldap.yahoo.com

sonstiges

Andere Arbeiten

Willeke LDAP Wiki