Kapitel 25. LDAP – Ein Verzeichnisdienst

Inhaltsverzeichnis

25.1. LDAP und NIS
25.2. Struktur eines LDAP-Verzeichnisbaums
25.3. Serverkonfiguration mit slapd.conf
25.4. Datenbehandlung im LDAP-Verzeichnis
25.5. YaST LDAP-Client
25.6. Konfigurieren von LDAP-Benutzern und -Gruppen
25.7. Weitere Informationen

Zusammenfassung

Bei Lightweight Directory Access Protocol (LDAP) handelt es sich um eine Reihe von Protokollen für den Zugriff auf und die Verwaltung von Datenverzeichnissen. LDAP kann für viele Zwecke, wie Benutzer- und Gruppenverwaltung, Systemkonfigurationsverwaltung und Adressverwaltung eingesetzt werden. Dieses Kapitel enthält die Grundlagen zum Verständnis der Funktionsweise von OpenLDAP und zur Verwaltung von LDAP-Daten mit YaST. Es sind zwar mehrere Implementierungen des LDAP-Protokolls möglich, in diesem Kapitel wird jedoch ausschließlich die OpenLDAP-Implementierung behandelt.

In einer Netzwerkumgebung ist es entscheidend, die wichtigen Informationen strukturiert anzuordnen und schnell zur Verfügung zu stellen. Dies kann mit einem Verzeichnisdienst erreicht werden, der Informationen wie die Gelben Seiten in gut strukturierter und schnell durchsuchbarer Form enthält.

Im Idealfall sind die Daten auf einem zentralen Server in einem Verzeichnis gespeichert, von dem aus sie über ein bestimmtes Protokoll an alle Clients verteilt werden. Die Daten sind so strukturiert, dass zahlreiche Anwendungen darauf zugreifen können. So ist es nicht erforderlich, für jedes einzelne Kalenderwerkzeug und jeden E-Mail-Client eine eigene Datenbank zu speichern, da stattdessen auf ein zentrales Repository zugegriffen werden kann. Dadurch wird der Verwaltungsaufwand für die Daten erheblich reduziert. Mithilfe eines offenen und standardisierten Protokolls wie LDAP wird sichergestellt, das so viele verschiedene Client-Anwendungen wie möglich auf diese Informationen zugreifen können.

In diesem Kontext ist ein Verzeichnis eine Art Datenbank, die für schnelle und effektive Lese- und Suchvorgänge optimiert wurde:

Das Design eines Verzeichnisdiensts wie LDAP ist nicht für die Unterstützung solch komplexer Aktualisierungs- und Abfragemechanismen bestimmt. Alle Anwendungen, die auf diesen Dienst zugreifen, müssen ihn schnell und einfach aufrufen können.

In Unix und außerhalb von Unix gibt es zahlreiche Verzeichnisdienste. Novell NDS, Microsoft ADS, Banyan's Street Talk und der OSI-Standard X.500 sind nur einige Beispiele. LDAP sollte ursprünglich als schlankere Version von DAP, dem für den Zugriff auf X.500 entwickelten Verzeichniszugriffsprotokoll, dienen. Mit dem X.500-Standard wird die hierarchische Anordnung von Verzeichniseinträgen gesteuert.

LDAP ist eine weniger umfassende Version von DAP. Sie können die plattformübergreifenden Funktionen von LDAP nutzen und Ressourcen sparen, ohne die X.500-Eintragshierarchie zu verlieren. Mithilfe von TCP/IP können Schnittstellen zwischen einer Anwendung und dem LDAP-Dienst wesentlich leichter hergestellt werden.

In der Zwischenzeit wurde LDAP weiter entwickelt und vermehrt als eigenständige Lösung ohne X.500-Unterstützung eingesetzt. LDAP unterstützt Verweise mit LDAPv3 (die Protokollversion im Paket openldap2), sodass die Verwendung von verteilten Datenbanken unterstützt wird. Auch die Verwendung von SASL (Simple Authentication and Security Layer) wurde neu eingeführt.

LDAP ist nicht, wie ursprünglich vorgesehen, auf die Datenabfrage von X.500-Servern beschränkt. Es ist ein Open Source-Server, slapd, vorhanden, auf dem Objektdaten in einer lokalen Datenbank gespeichert werden können. Darüber hinaus können über die Erweiterung slurpd mehrere LDAP-Server reproduziert werden.

Das openldap2-Paket besteht aus folgenden Komponenten:

slapd

Ein eigenständiger LDAPv3-Server, mit dem Objektdaten in einer BerkeleyDB-basierten Datenbank verwaltet werden.

slurpd

Dieses Programm ermöglicht die Reproduktion von Datenänderungen auf dem lokalen LDAP-Server auf anderen im Netzwerk installierten LDAP-Servern.

Zusätzliche Tools für die Systemwartung

slapcat, slapadd, slapindex

25.1. LDAP und NIS

Der Unix-Systemadministrator verwendet für die Namenauflösung und die Datenverteilung in einem Netzwerk in der Regel NIS. Die in den Dateien unter /etc und in den Verzeichnissen group, hosts, mail, netgroup, networks, passwd, printcap, protocols, rpc und services enthaltenen Konfigurationsdaten werden über Clients im ganzen Netzwerk verteilt. Diese Dateien können ohne größeren Aufwand verwaltet werden, da es sich hierbei um einfache Textdateien handelt. Die Verarbeitung größerer Datenmengen wird aufgrund der fehlenden Strukturierung jedoch immer schwieriger. NIS ist nur für Unix-Plattformen bestimmt. Es eignet sich nicht als Tool zur zentralen Datenadministration in heterogenen Netzwerken.

Im Gegensatz zu NIS ist die Verwendung des LDAP-Diensts nicht auf reine Unix-Netzwerke beschränkt. Windows-Server (ab 2000) unterstützten LDAP als Verzeichnisdienst. Auch Novell bietet einen LDAP-Dienst an. Die oben erwähnten Anwendungsaufgaben werden zusätzlich in Nicht-Unix-Systemen unterstützt.

Das LDAP-Prinzip lässt sich auf jede beliebige Datenstruktur anwenden, die zentral verwaltet werden soll. Nachfolgend einige Anwendungsbeispiele:

  • Verwendung als Ersatz für den NIS-Dienst

  • Mail-Routing (postfix, sendmail)

  • Adressbücher für Mail-Clients, wie Mozilla, Evolution und Outlook

  • Verwaltung von Zonenbeschreibungen für einen BIND9-Namenserver

  • Benutzerauthentifizierung mit Samba in heterogenen Netzwerken

Diese Liste lässt sich erweitern, da LDAP im Gegensatz zu NIS erweiterungsfähig ist. Durch die klar definierte hierarchische Datenstruktur wird die Verwaltung großer Datenmengen erleichtert, da die Daten besser durchsucht werden können.