Inhaltsverzeichnis
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:
Damit mehrere (gleichzeitige) Lesevorgänge möglich sind, ist der Schreibzugriff nur auf eine geringe Anzahl an Aktualisierungen durch den Administrator beschränkt. Herkömmliche Datenbanken sind speziell dafür bestimmt, ein möglichst großes Datenvolumen in kurzer Zeit verarbeiten zu können.
Da der Schreibzugriff nur eingeschränkt möglich ist, wird ein Verzeichnisdienst zur Verwaltung der statischen Informationen eingesetzt, die sich normalerweise nicht ändern. Daten in einer herkömmlichen Datenbank werden in der Regel häufig geändert (dynamische Daten). So werden die Telefonnummern in einem Unternehmensverzeichnis beispielsweise nicht so häufig geändert wie die in der Buchhaltung verwalteten Zahlen.
Bei der Verwaltung statischer Daten werden die vorhandenen Datengruppen nur selten aktualisiert. Beim Arbeiten mit dynamischen Daten, insbesondere wenn daran Datengruppen wie Bankkonten oder Buchhaltung beteiligt sind, kommt der Datenkonsistenz höchste Priorität zu. Wenn ein Betrag an einer Stelle subtrahiert und an einer anderen Stelle addiert werden soll, müssen beide Vorgänge innerhalb einer Transaktion gleichzeitig erfolgen, um das Gleichgewicht des Datenbestandes aufrecht zu erhalten. Diese Art von Transaktionen wird von Datenbanken unterstützt. In Verzeichnissen ist dies jedoch nicht der Fall. Kurzfristige Inkonsistenzen der Daten sind in Verzeichnissen in gewissem Maße akzeptabel.
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:
Ein eigenständiger LDAPv3-Server, mit dem Objektdaten in einer BerkeleyDB-basierten Datenbank verwaltet werden.
Dieses Programm ermöglicht die Reproduktion von Datenänderungen auf dem lokalen LDAP-Server auf anderen im Netzwerk installierten LDAP-Servern.
slapcat, slapadd, slapindex
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.