Inhaltsverzeichnis
Zusammenfassung
Das Lightweight Directory Access Protocol (LDAP) besteht aus einer Reihe von Protokollen für den Zugriff auf und die Verwaltung von Datenverzeichnissen. LDAP kann für viele Zwecke, wie Benutzer- und Gruppenverwaltung und Verwaltung von Systemkonfigurationen und Adressen 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 verfübbar, 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 ein Verzeichnisdienst erreichen, der wie die Gelben Seiten, Informationen 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 Email-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, dass 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 optimiert, ein möglichst großes Datenvolumen in kurzer Zeit zu verarbeiten.
Da Schreibzugriff nur eingeschränkt möglich ist, wird ein Verzeichnisdienst zur Verwaltung statischer 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 nur sehr selten Aktualisierungen der vorhandenen Datensätze ausgeführt. Beim Arbeiten mit dynamischen Daten, insbesondere wenn daran Datensätze, 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 einem gewissen Rahmen akzeptabel.
Das Design eines Verzeichnisdiensts wie LDAP ist nicht für die Unterstützung komplexer Aktualisierungs- und Abfragemechanismen ausgelegt. Alle Anwendungen, die auf diesen Dienst zugreifen, müssen ihn schnell und einfach aufrufen können.
Unter Unix und um Unix gibt es zahlreiche Verzeichnisdienste. Novells NDS, Microsofts ADS, Banyans 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 verschlankte 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
Referrals 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 gibt einen Open Source-Server, slapd, auf dem Objektdaten in einer lokalen Datenbank gespeichert werden können. Darüber hinaus können über die Erweiterung slurpd mehrere LDAP-Server repliziert 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 an 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, sodass es zur zentralen Datenadministration
in einem heterogenen Netzwerk nicht eingesetzt werden kann.
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-Nameserver
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.