Inhaltsverzeichnis
Zusammenfassung
Das Lightweight Directory Access Protocol (LDAP) umfasst eine Reihe von Protokollen für den Zugriff auf und die Verwaltung von Informationsverzeichnissen. LDAP kann für verschiedene Aufgaben wie Benutzer- und Gruppenverwaltung, Systemkonfigurationsverwaltung oder Adressverwaltung eingesetzt werden. Dieses Kapitel vermittelt grundlegende Informationen zur Arbeitsweise von LDAP und der Administration von LDAP-Daten mit YaST.
Innerhalb einer vernetzten Arbeitsumgebung ist es entscheidend, wichtige Informationen strukturiert und schnell abrufbar bereitzuhalten. Dieses Problem löst ein Verzeichnisdienst, der ähnlich den Gelben Seiten (engl. Yellow Pages) im normalen Alltagsleben die gesuchten Informationen in gut strukturierter, schnell durchsuch- und abrufbarer Form bereithält.
Im Idealfall existiert ein zentraler Server, der die Daten in einem Verzeichnis vorhält und über ein bestimmtes Protokoll an alle Clients im Netzwerk verteilt. Die Daten sollten derart strukturiert sein, dass ein möglichst breites Spektrum von Anwendungen darauf zugreifen kann. So muss nicht jedes Kalendertool oder jeder E-Mailclient seine eigenen Datenbanken vorhalten, sondern kann auf den zentralen Bestand zurückgreifen. Dies verringert den Verwaltungsaufwand für die betreffenden Informationen beträchtlich. Die Verwendung eines offenen und standardisierten Protokolls wie LDAP stellt sicher, dass möglichst viele Clientapplikationen auf solche Informationen zugreifen können.
Ein Verzeichnis in diesem Kontext ist eine Art von Datenbank, die daraufhin optimiert ist, besonders gut und schnell les- und durchsuchbar zu sein:
Um zahlreiche (gleichzeitige) Lesezugriffe zu ermöglichen, wird der Schreibzugriff auf einige wenige Aktualisierungen seitens des Administrators begrenzt. Herkömmliche Datenbanken sind daraufhin optimiert, in kurzer Zeit ein möglichst großes Datenvolumen aufzunehmen.
Da Schreibzugriffe nur sehr eingeschränkt ausgeführt werden sollen, verwaltet man über einen Verzeichnisdienst möglichst unveränderliche, statische Informationen. Die Daten innerhalb einer konventionellen Datenbank ändern sich typischerweise sehr häufig (dynamische Daten). Telefonnummern in einem Mitarbeiterverzeichnis ändern sich nicht annähernd so häufig wie zum Beispiel die Zahlen, die in der Buchhaltung verarbeitet werden.
Werden statische Daten verwaltet, sind Updates der bestehenden Datensätze sehr selten. Bei der Arbeit mit dynamischen Daten, besonders wenn es um Datensätze wie Bankkonten und Buchhaltung geht, steht die Konsistenz der Daten im Vordergrund. Soll eine Summe an einer Stelle abgebucht werden, um sie an anderer Stelle hinzuzufügen, müssen beide Operationen gleichzeitig – innerhalb einer „Transaktion“ ausgeführt werden, um die Ausgeglichenheit des Datenbestandes sicherzustellen. Datenbanken unterstützen solche Transaktionen, Verzeichnisse nicht. Kurzfristige Inkonsistenzen der Daten sind bei Verzeichnissen durchaus akzeptabel.
Das Design eines Verzeichnisdienstes wie LDAP ist nicht dazu ausgelegt, komplexe Update- oder Abfragemechanismen zu unterstützen. Alle auf diesen Dienst zugreifende Anwendungen sollen möglichst leicht und schnell Zugriff haben.
Verzeichnisdienste gab und gibt es, nicht nur in der Unix-Welt, viele. Novells NDS, Microsofts ADS, Banyans Street Talk und den OSI-Standard X.500.
LDAP war ursprünglich als eine schlanke Variante des DAP (engl. Directory Access Protocol) geplant, das für den Zugriff auf X.500 entwickelt wurde. Der X.500-Standard regelt die hierarchische Organisation von Verzeichniseinträgen.
LDAP ist um einige Funktionen des DAP erleichtert und kann plattformübergreifend und vor allem ressourcenschonend eingesetzt werden, ohne dass man auf die in X.500 definierten Eintragshierarchien verzichten müsste. Durch die Verwendung von TCP/IP ist es wesentlich einfacher, Schnittstellen zwischen aufsetzender Applikation und LDAP-Dienst zu realisieren.
Mittlerweile hat sich LDAP weiterentwickelt und kommt immer häufiger als
Stand-alone-Lösung ohne X.500-Unterstützung zum Einsatz. Mit LDAPv3 (der
Protokollversion, die Sie mit dem installierten Paket openldap2 vorliegen haben) unterstützt LDAP
so genannte Referrals, mit deren Hilfe sich verteilte
Datenbanken realisieren lassen. Ebenfalls neu ist die Nutzung von SASL
(engl. Simple Authentication and Security Layer) als Authentifizerungs- und
Sicherungsschicht.
LDAP kann nicht nur zur Datenabfrage von X.500-Servern eingesetzt werden, wie ursprünglich geplant war. Es gibt mit slapd einen Open Source Server, mit dem Objektinformationen in einer lokalen Datenbank gespeichert werden können. Ergänzt wird er durch slurpd, der für die Replikation mehrerer LDAP-Server zuständig ist.
Das Paket openldap2 besteht im
Wesentlichen aus zwei Programmen.
Ein Stand-alone-LDAPv3-Server, der Objektinformationen in einer BerkeleyDB-basierten Datenbank verwaltet.
Dieses Programm ermöglicht es, Änderungen an den Daten des lokalen LDAP-Servers an andere im Netz installierte LDAP-Server zu replizieren.
slapcat, slapadd, slapindex
Traditionell verwendet der Unix-Systemadministrator zur Namensauflösung
und Datenverteilung im Netzwerk den NIS-Dienst. Auf einem zentralen
Server werden die Konfigurationsdaten aus den
/etc-Dateien und den
Verzeichnissen group,
hosts, mail,
netgroup, networks,
passwd, printcap,
protocols, rpc
und services über die Clients im Netz
verteilt. Als bloße Textdateien sind diese Dateien ohne größeren Aufwand
wartbar. Allerdings wird die Verwaltung größerer Datenmengen aufgrund
mangelnder Strukturierung schwierig. NIS ist nur für Unix-Plattformen
ausgelegt, was einen Einsatz als zentrale Datenverwaltung im heterogenen
Netz unmöglich macht.
Das Einsatzgebiet des LDAP-Dienstes ist im Gegensatz zu NIS nicht auf reine Unix-Netze beschränkt. Ab Windows Server 2000 wird auch LDAP als Verzeichnisdienst unterstützt, ebenso Novell. Zudem ist LDAP nicht auf die oben genannten Aufgabengebiete beschränkt.
Das LDAP-Prinzip kann für beliebige Datenstrukturen verwendet werden, die zentral verwaltet werden sollen. Einige Anwendungsbeispiele wären zum Beispiel:
Einsatz anstelle eines NIS-Servers
Mailrouting (postfix, sendmail)
Adressbücher für Mailclients wie Mozilla, Evolution, Outlook, ...
Verwaltung von Zonenbeschreibungen für einen BIND9-Nameserver
Diese Aufzählung kann beliebig fortgesetzt werden, da LDAP im Gegensatz zu NIS erweiterbar ist. Die klar definierte hierarchische Struktur der Daten hilft bei der Verwaltung sehr großer Datenmengen, da sie besser durchsuchbar ist.