LDAP: Was ist das Lightweight Directory Access Protocol?

L3

Das Lightweight Directory Access Protocol (LDAP) ist ein Protokoll für die Verwaltung von Daten, die wie ein Telefonbuch eine Beziehung zwischen verschiedenen Bezeichnungen herstellen. Das ist oft eine Zuordnung von Benutzernamen, E-mail Adressen und Passwörtern. Das Protokoll legt das Format dieser Daten und die Art der Zugriffe darauf fest. Es ist de facto ein Industriestandard für die Verwaltung von Nutzerdaten und für die Funktion der Zugangskontrolle.

Allgemeine Eigenschaften

Es handelt sich bei LDAP um einen herstellerunabhängigen Standard, der in für Technologie im Internet üblichen RFC niedergelegt ist. Genauer sind das für die neueste Version LDAP-v3 die RFC 4510 bis 4532. Der Buchstabe L für Lightweight bezieht sich darauf, dass es sich hier um eine vereinfachte Version des DAP X.500 handelt. Dieser Standard ist so umfangreich, dass gar keine vollständige Implementierung existiert.

Die Definition von LDAP legt zwei Aspekte fest.

Datenstruktur als Verzeichnis

Die Daten sind in der Form eines Baums strukturiert, was man auch als Graph ohne Zyklen, also ohne kreisförmige Pfade von Knoten, ansehen kann. Dies entspricht der Struktur eines hierarchischen Verzeichnisses. Die Wurzel des Baums bezeichnet das Verzeichnis

L2

Entscheidend ist die Struktur.

selbst, die Äste stellen eine Untergliederung dar. In diesem Baum stellen die Knoten Objekte dar, die Daten in vom Format LDAP vorgegebener Form enthalten. Es ist möglich, ein Verzeichnis verteilt aufzubauen. Das Protokoll unterstützt dann die notwendigen Schritte, das gesamte Verzeichnis konsistent zu halten. Für häufige Anwendungen wie die Organisation von Firmen und Benutzergruppen stellt das Format LDAP vordefinierte Objektklassen zur Verfügung.

Die folgende Zeile enthält ein einfaches Beispiel für einen Datensatz im Format LDAP. Die Bezeichnungen sind in diesem Fall selbsterklärend. Dieser Datensatz könnte durch den Weg der Bezeichnungen von Land – Unternehmen – Abteilung – Name wie eine URL von rechts nach links erschlossen werden.

cn=Hans Mustermann, ou=IT, o=MyCompany, c=DE

Die Form der Daten kann aber auch sehr verschieden sein und sogar Bilddateien sind möglich.

Zugriff auf das Verzeichnis von LDAP

Dieser Teil der Definition von LDAP regelt die Art, wie man auf die Daten zugreifen kann. Ein Zugriffsprozess muss davon ausgehen können, dass die Daten in einer für den Zugriff geeigneten Form vorliegen. Das streng definierte Format der Daten ermöglicht es damit erst, den Zugriff auf hinreichend einfache Art festzulegen. Der quelloffen verfügbare Befehl cURL im Bourne-again-Shell und auf zahlreichen anderen Kommandozeilentools unterstützt LDAP. Damit ist es also einfach möglich, mit solchen Zugriffen zu experimentieren.

Mehr zum Thema:
Was ist MongoDB?

Funktionalität

Das Protokoll beschreibt neben der Datenstruktur die Kommunikation zwischen einem Client und einem Server. Der Client übermittelt eine Anfrage, der Server beantwortet sie. Ein solche Anfrage ist einer Suche in einer Datenbank ähnlich. LDAP unterstützt allerdings nicht alle relationalen Operationen, im Gegensatz zur Datenbankabfragesprache SQL.
An elementaren Funktionen sind auf jeden Fall die folgenden verfügbar.

  • Art der Anfrage: Es wird festgelegt, ob die Anfrage anonym oder mit Authentifizierung erfolgt. Der letztere Fall wird die Regel sein, besonders wenn es um Änderungen in den Daten geht.
  • Suche: In der Anfrage wird festgelegt, nach welchen Kriterien in der Datenstruktur gesucht werden muss.
  • Änderungen: LDAP unterstützt als Werkzeug zur Benutzerdatenverwaltung natürlich auch eine Änderung von Daten von Benutzern. Für diese Funktion wird praktisch immer eine Authentifizierung erforderlich sein. Als Beispiel für eine Anfrage an eine einfache Datenstruktur kann man eine Angabe eines Namens betrachten. Die Antwort könnte aus der E-Mail Adresse oder einer anderen der genannten Person zugeordneten Eigenschaft bestehen.

Verwendung

L1

LDAP in seiner Form als Adressbuch.

Allgemein dient das Protokoll dazu, eine Serveradministration zu erleichtern und in einem Netzwerk einen Informationsdienst bereitzustellen. Unter Linux wird das Protokoll oft zusammen mit Samba verwendet, das als Domain Controller zur Authentifizierung von Nutzern und Geräten dient. Eine quelloffen verfügbare Implementierung für Linux ist openLDAP. Eine weitere wichtige Verwendung ist die Verwaltung der Benutzerdaten für die E-Mail Protokolle SMTP, POP und IMAP auf den betreffenden Mailservern. Von Microsoft wird LDAP für den Active Directory Service verwendet, von Apple für sein äquivalentes Produkt Apple Open Directory. Auch die Adressbuchprogramme Apple Adressbuch und Microsoft Outlook sowie die Bürosoftwarepakete OpenOffice und LibreOffice unterstützen LDAP. Um Daten stets in Sicherheit zu wissen, ist übrigens ein Datenraum von Vorteil.

Technische Details von LDAP

Es handelt sich bei LDAP um ein Anwendungsprotokoll, das sich auf derselben Ebene wie HTTP befindet. Es baut also auf der Transportebene und den dort angesiedelten Protokollen UDP und TCP auf. Die Ablage der Daten erfolgt im Klartext und deshalb gibt es bei der Verwendung von LDAP keine Komplikationen mit der Kodierung der Daten. Diese Designentscheidung stellt eine der Vereinfachungen im Gegensatz zu DAP in der Form von X.500 dar. Aufgrund der weiten Verbreitung ist es nicht überraschend, dass LDAP von zahlreichen Programmiersprachen unterstützt wird. Dazu gehören beispielsweise C, C++, Perl und PHP.