Lightweight Directory Access Protocol
Anwendung | LDAP | |||
Transport | TCP / UDP | |||
Netzwerk | IP | |||
Netzzugang | Ethernet | Token Ring |
FDDI | ... |
Das Lightweight Directory Access Protocol (LDAP) ist in der Computertechnik ein Netzwerkprotokoll, das die Abfrage und die Modifikation von Informationen eines Verzeichnisdienstes (eine im Netzwerk verteilte hierarchische Datenbank) erlaubt. Die aktuelle Version ist in RFC 2251 spezifiziert.
Überblick
LDAP ist ein Netzwerkprotokoll, das bei so genannten Verzeichnisdiensten (engl. directories) zum Einsatz kommt. Es vermittelt die Kommunikation zwischen dem LDAP-Client (beispielsweise einem Mailserver oder digitalem Adressbuch) mit dem Directory Server. Dabei werden alle Protokoll-spezifischen Funktionen geboten, die für eine solche Kommunikation notwendig sind: Anmeldung am Server (sog. bind), die Suchabfrage (Suche mir bitte alle Informationen zum Benutzer mit dem Namen 'Joe User'!) und die Modifikation der Daten (Beim Benutzer 'Joe Cool' ändere bitte das Passwort!).
Neuere Implementierungen, die über RFC 2251 hinaus gehen und Gegenstand für eine mögliche Erweiterung des Protokolls sind, berücksichtigen die Replikation der Daten zwischen verschiedenen Directories.ssssssssssssssssssss
Geschichte
LDAP wurde an der Universität von Michigan entwickelt und 1993 erstmals in einem RFC vorgeschlagen. Es stellt eine vereinfachte Form des Directory Access Protocol (DAP) dar, welches im X.500-Standard definiert ist. Der X.500-Standard ist sehr umfangreich und setzt auf einem vollständigen ISO/OSI-Stack auf, was die Implementierung schwierig und rechenintensiv machte und damit einen Erfolg verhinderte.
LDAP wurde mit dem Ziel entwickelt, Verzeichnisdienste einfacher und somit populärer zu machen. Aus diesem Grund setzt LDAP auf einem TCP/IP-Stack auf und implementiert nur einige der DAP-Funktionen und Datentypen. Trotzdem lassen sich mit den vorhandenen LDAP-Funktionen alle anderen emulieren.
LDAP und X.500
Während X.500 eine sehr strenge Implementierung der Directory-Daten erfordert und von der Protokollseite her mit DAP einen viel größeren Funktions- und Kontrollumfang als LDAP besitzt, hat sich gezeigt, dass diese Architektur gerade deswegen einer breiteren Verteilung in vielen Unternehmen im Wege steht. Die Entscheidung, eine „lightweight“-Version des DAP-Protokolls zu implementieren, führte zu einer hohen Flexibilität in den Netzwerken, so dass solche Verzeichnisse zum ersten Mal „Internet-tauglich“ wurden.
Funktionsweise

Jedes LDAP-Verzeichnis hat eine bestimmte Struktur. Die Struktur wird durch die verwendeten Schemata definiert. Ein LDAP Schema definiert jeweils Objekt-Klassen mit ihren Attributen, z.B. die Klasse person oder die Klasse organisation.
Die Verzeichniseinträge heißen bei LDAP Objekte. Jedes Objekt gehört zu mindestens einer, in der Regel aber zu mehreren Klassen. So sind für die Daten einer Person, ihrer E-Mail-Adresse und ihrer Passwörter nicht etwa drei Objekte notwendig, sondern dasselbe Objekt gehört zu drei Klassen. Diese könnten in diesem Beispiel person, inetOrgPerson und posixAccount heißen.
Jedes Objekt ist eigenständig und aus Attributen zusammengesetzt. Ein einzelnes Objekt wird eindeutig durch den Distinguished Name (DN) identifiziert.
Jedes Attribut eines Objekts hat einen bestimmten Typ und einen oder mehrere Werte. Die Typenbezeichnung eines Attributs sind meist einfach zu merkende Kürzel wie z.B. cn für common name, ou für organizational unit, s für state, c für country oder mail für e-mail address. Die erlaubten Werte eines Attributs sind vom Typ abhängig. So könnte ein mail-Attribut die Adresse hans.wurst@example.com enthalten, ein jpegPhoto-Attribut dagegen würde ein Foto als binäre Daten im JPEG-Format speichern.
Die Objekte werden in einer hierarchischen Struktur gespeichert, die politische, geographische oder organisatorische Grenzen widerspiegelt. Die größten Einheiten werden an die Spitze des Verzeichnisbaumes gestellt, der sich nach unten immer weiter auffächert.

Einzelne LDAP-Server sind für einzelne Teile des Verzeichnisbaumes zuständig, seine Partition. Stellt ein Client eine Anfrage, für die der Server nicht zuständig ist, kann der Server den Client an einen anderen Server verweisen. LDAP-Server lassen sich redundant aufbauen. Hierzu wird oft eine Master-Slave-Konfiguration verwendet. Versucht ein Client Daten auf einem Slave-Server zu ändern, wird er an den Master verwiesen. Die Änderungen auf dem Master-Server werden dann an alle Slave-Server weitergegeben.
Da viele verschiedene Schemata in verschiedenen Versionen in Benutzung sind, ist die Vorstellung eines „globalen“ alles umfassenden LDAP-Verzeichnisses nicht real. LDAP-Server werden als zentraler Verzeichnisdienst für verschiedene Zwecke in verschiedenen Größen eingesetzt, die Objekthierarchie bleibt aber in der Regel auf eine Organisation beschränkt.
Unterstützung von LDAP
Viele Anbieter von Verzeichnisdiensten unterstützen LDAP, z.B.:
- Apple (durch Open Directory)
- AT&T
- Banyan Vines
- credativ
- Critical Path
- Hewlett-Packard
- GONICUS
- IBM/Lotus
- Microsoft (durch ADS)
- Novell (durch NDS)
- Oracle (durch Oracle Internet Directory)
- SGI
- openLDAP (openSource Variante für eine Vielzahl unterschiedlicher Plattformen, so z.B. auch Linux)
- Siemens (durch Siemens DirX Directory Server)
- Sun (durch Sun ONE Directory Server)
Auch Client- und Server-Software kann LDAP-Dienste benutzen: Mozillas E-Mail-Programm Thunderbird, IBMs Lotus Notes, Novell Evolution oder Microsoft Outlook können für das Adressbuch LDAP verwenden. Die Mailserver postfix, qmail, exim, Lotus Domino und sendmail können LDAP zur Authentifizierung oder zur Verwaltung von Aliasen verwenden. Squid, Lotus Domino und apache können LDAP als Authentifizierungssystem verwenden usw.
GQ [1] und Luma [2] ermöglichen das direkte Betrachten und Bearbeiten von LDAP-Verzeichnissen.
Der Export und Import erfolgt mittels LDIF.
Siehe auch
- Verzeichnisdienst
- OpenLDAP – Referenzimplementierung LDAPv3
- Active Directory Service
LDAPv2 (veraltet)
LDAPv3
Weblinks
- OpenLDAP – Open Source-Referenzimplementierung LDAPv3
- Verzeichnisdienst.de – Umfangreiche Linksammlung zu LDAP-Verzeichnisdiensten
- LDAP Articles, Links, Whitepapers
- LDAP (v3) Revision (ldapbis) Working Group
- Deutsches Debian-Samba-LDAP HowTo (samba-ldap.de)