Rechnernetze
Home Nach oben

Lightweight Directory Access Protocol

Ein Directory Service (DS) ist eine Datenbank mit Informationen über Benutzer (z.B. Firmenangehörige) oder Geräte (Netzknoten, Drucker usw.) oder andere ähnliche Objekte. Um einen solchen Informationsdienst möglichst einfach zu halten, kann (und sollte) bei einem Directory Service das in Datenbanken übliche Transaktionsschema beim Ändern der Werte vermieden werden; Daten werden nur selten geändert und wenn, dann vollständig oder gar nicht! Daher werden Directorys auch besonders darauf ausgelegt, eine große Anzahl von Datenabfragen zu beantworten.

LDAP (Lightweight Directory Access Protocol) ist ein Directory Service, welches nach dem Client-Server-Prinzip arbeitet. Ein LDAP-Client fragt einen LDAP-Server nach einem Objekt ab und erhält entweder direkt eine Antwort oder einen Verweis auf einen anderen LDAP-Server, der mit dem ersten (und evtl. weiteren) zusammen einen LDAP-Directory-Tree bildet.

Der LDAP-Directory-Tree muss stets eine konsistente Antwort zu der gleichen Anfrage liefern, unabhängig von dem tatsächlich abgefragten LDAP-Server. Die Datenbanken, an welche die Anfragen gestellt werden, können sich auf sehr unterschiedliches Datenmaterial abstützen. Solche Backend Datenbanken können eigene Dateien führen (LDBM), verschiedene UNIX-Kommandos oder Shellscripts verwenden (SHELL), oder spezielle Passwörter enthalten (PASSWD).

Information wird in einer LDIF-Datei (LDIF: LDAP Data Information Format) abgespeichert bzw. zwischen den LDAP-Servern ausgetauscht. Eine solche LDIF-Datei hat beispielsweise folgendes aussehen:

dn: o=Uni-Oldenburg, c=DE
o:  Uni-Oldenburg
objectclass: organization

dn:   cn=Wolfgang Kowalk, o=Uni-Oldenburg, c=DE
cn:   Wolfgang Kowalk
sn:   Kowalk
o:    Uni-Oldenburg
mail: kowalk@informatik.uni-oldenburg.de
objectclass: person

Jeder Eintrag in einer LDAP-Directory beginnt mit einem Distinguished Name (dn), welcher aus dem Namenseintrag besteht sowie einem Pfad von Einträgen, welcher diesen Eintrag zur Wurzel der Directoryhierarchie führt. Objektklassen (objectclass) definieren die Menge an Attributen, die einen Eintrag ausmachen. Der LDAP-Standard legt diese Objektklassen fest. Es gibt die folgenden Attribute:

Gruppen enthalten u.a. ungeordnete Listen individueller Objekte oder Gruppen von Objekten,
Orte wie Ländernamen,
Organisationen,
Personen.

Einträge können mehreren Objektklassen angehören, wie im Beispiel eine Organisation sowohl einer Personen-Objektklasse als auch einer Organisations-Objektklasse angehört. Jeder LDAP-Server legt im Rahmen eines Schemas die notwendigen bzw. erlaubten Attribute für die Einträge fest. Jedem Attribut ist eine bestimmte Syntax zugeordnet. Es gibt die folgenden Möglichkeiten, die insbesondere bei Test auf Gleichheit wichtig sind:

bin: binary, d.h. binäre Darstellung von Werten;
ces: case exact string, d.h. Werte müssen auch in Groß- und Kleinschreibung übereinstimmen;
cis: case ignore string, d.h. Werte sind auch dann gleich, wenn sie nicht in Groß- und Kleinschreibung übereinstimmen;
tel: telephone number string, d.h. Leerzeichen und Striche (-, / usw.) werden beim Vergleich ignoriert;
dn: distinguished name.