Verzeichnisdienste - Grundlagen und Konzept

Verzeichnisse und LDAP
Kommentare

Dieses Kapitel führt die grundlegenden Begriffe und Konzepte rund um Verzeichnisdienste und LDAP ein. Dies erfolgt unabhängig von konkreten Implementierungen, und insbesondere auch unabhängig von Java. Die Standardmethode der Java-Welt zum Zugriff auf Verzeichnisse abstrahiert zwar zunächst von LDAP und adressiert allgemein Namens- und Verzeichnisdienste. Zumindest Grundkenntnisse in LDAP sind für eine erfolgreiche Integration jedoch unerlässlich. Falls das Verzeichnis z. B. außerhalb Ihres Zuständigkeits­bereichs betrieben wird, erleichtert Basiswissen die Kommunikation mit den Ansprechpartnern erheblich. Und schon bei moderat fortgeschrittenen Themen ist es mit der Abstraktion vorbei, und auch bei der Java-Standardintegrationsmethode treten LDAP-spezifische Packages, Klassen und Schnittstellen in Aktion. Ein grundlegendes Verständnis der Konzepte vereinfacht den Einstieg.

Einblicke in die Verzeichniswelt

Zunächst führe ich in die Begriffswelt ein. Es folgen ein kleiner geschichtlicher Überblick und eine Beschreibung der Standards, die für die Thematik innerhalb dieses Buches relevant sind. Anschließend stelle ich kurz einige konkrete Vertreter für Verzeichnislösungen vor.

Was ist ein Verzeichnis?

Im allgemeinen Sprachgebrauch wird unter einem Verzeichnis (engl. Directory, das D in LDAP) eine Auflistung oder Sammlung von Informationen verstanden. Beispiele für Verzeichnisse der realen Welt sind Telefonbücher (öffentliche oder unternehmensinterne), Fahrpläne, Werksverzeichnisse (das Köchelverzeichnis z. B. ist eine Aufstellung aller Werke Mozarts), Kirchen- und Grundbücher. Alle diese Beispiele dienen dem Zweck, Informationen zu bewahren und bei Bedarf Interessierten zugänglich zu machen.

In der Welt der Informationstechnologie hat sich der Begriff „Verzeichnis“ für spezielle Datenspeicher etabliert. Hierbei handelt es sich um hierarchische Datenbanken, deren Informationsmodell nicht wie bei relationalen Datenbanken auf Tabellen beruht, sondern welche die Informationen in einer Baumstruktur ablegen. Die Daten aus den obigen Beispielen „passen“ zwar ganz gut auch in Verzeichnislösungen in diesem Sinne. Je nach konkreter Anwendung kann die Wahl eines anderen Datenspeichers jedoch angemessener sein.

Verzeichnisdienste

Unter einem Verzeichnisdienst versteht man eine Lösung, die Nutzern den Zugang zu einem Verzeichnis ermöglicht, etwa um Informationen aus dem Verzeichnis abzurufen. Ein sehr anschauliches Beispiel aus der realen Welt ist die Telefonauskunft. Im EDV-Bereich werden derartige Dienste in der Regel durch Softwarekomponenten bereitgestellt. Verzeichnisdienste ermöglichen den Zugriff auf die Inhalte des Verzeichnisses über eine wohl definierte Schnittstelle – im Fall eines Netzwerkzugriffs wird dazu ein entsprechendes Kommunikationsprotokoll definiert. Ein Protokoll dieser Art ist LDAP. LDAP beschreibt neben den Anweisungen, die ein Verzeichnisdienst versteht, auch ein Informationsmodell („Wie werden Informationen des Verzeichnisses repräsentiert?“) und ein Sicherheitsmodell. Dabei ist LDAP weder der erste noch der umfassendste Standard in der Verzeichniswelt. X.500 [2.1] adressiert verschiedene Themen, die LDAP offen lässt, wie beispielsweise die Replikation von Inhalten bei verteilten Verzeichnissen. Aber LDAP ist heute der am meisten verbreitete Standard.

Von X.500 zu LDAP

Von X.500 zu LDAP

[header = Was ist „light“ an LDAP?]

Was ist „Light“ an LDAP?

Um zu verstehen, warum LDAP das „Lightweight“ im Namen führt, ist ein kurzer Blick in die Entstehungsgeschichte angebracht. Ursprünglich ist das Protokoll entwickelt worden, um einen TCP/IP-basierten Zugang zu Verzeichnissen zu ermöglichen, die auf dem umfangreichen X.500-Standard beruhten. Der Zugriff auf ein X.500-basiertes Verzeichnis erfolgt normalerweise nach dem Client-Server-Modell mithilfe eines Zugriffsprotokolls namens DAP (Directory Access Protocol). Dieses Protokoll setzt auf dem OSI Protocol Stack (Open System Interconnection) auf. Mit der wachsenden Verbreitung des Internets entstand jedoch der Bedarf nach einem TCP/IP-basierten Zugriffsmechanismus auf Verzeichnisse. LDAP stellt eine schlanke Variante von DAP dar, welche diese Anforderung erfüllt. Die ersten Implementierungen von LDAP waren Gateway-Lösungen, die zwischen LDAP-Clients und X.500-Servern vermittelten. 1995 stellte die University of Michigan den ersten nativen LDAP-Server vor; die Arbeit wird mittlerweile vom OpenLDAP-Projekt [1.17] fortgeführt. 1996 folgte Netscape mit dem ersten kommerziellen LDAP-Server. Abbildung 2.1 zeigt die Entwicklung der Verzeichnisprotokolle von DAP zu LDAP. Die Wurzeln zu X.500 schlagen sich in zahlreichen Konzepten von LDAP nieder, insbesondere im Informationsmodell.

Im Folgenden soll unter einem LDAP-Server eine Softwarekomponente verstanden wer-den, die Verzeichnisdienste über das LDAP-Protokoll anbietet. Die zugrunde liegende Implementierung des Verzeichnisses, von der dabei abstrahiert wird, kann sehr unter-schiedlich sein. Atos DirX [1.19] etwa ist eine vollwertige X.500-Lösung, die sowohl DAP als auch LDAP anbietet. IBM [1.21] und Oracle [1.27] setzen in ihren Produkten ihre jeweilige relationale Datenbank als Speichermedium ein. Eine gesonderte Softwarekomponente stellt das LDAP-Protokoll nach außen bereit und schirmt die Datenbank vor anderen Zugriffen ab.

Standards oder: Wie unterschiedlich sind LDAP-Server?

Die Standardisierung von LDAP ist über so genannte RFCs (Requests for Comments) der IETF (Internet Engineering Task Force, [2.25]) erfolgt. Auf die gleiche Weise wurden auch IP, TCP/IP und andere auf TCP/IP aufbauende Protokolle wie z. B. HTTP beschrieben. Der aktuelle Stand von LDAP v3 ist in RFC 4510 („LDAP: Technical Specification Road Map“) definiert. Hierbei handelt es sich um eine Art „Mantelvertrag“, er zählt weitere RFCs auf (ähnlich, wie Java EE viele Technologien wie EJB, Servlets usw. umfasst). Die Dokumente aus dem Jahr 2006 lösen frühere Fassungen der LDAP-Spezifikation ab (allen voran RFC 2251). Abbildung 2.2 zeigt die Evolution seit 1993 anhand wichtiger RFC-Dokumente. Eine Tabelle am Ende des Kapitels beinhaltet alle relevanten RFCs und auch die Beziehungen untereinander.

Evolution der LDAP-RFCs von 1993 bis heute

Evolution der LDAP-RFCs von 1993 bis heute

In der Regel bleibt Ihnen als Java-Entwickler das Studium dieser Spezifikationen erspart. Komfortable APIs, deren Gebrauch sich über die Dokumentation erschließt, übernehmen die unmittelbare Berührung. In bestimmten Situationen ist das Nachschlagen in den Originaldokumenten jedoch nützlich und angebracht, etwa wenn man Lösungen schaffen möchte, die LDAP-Konzepte allgemein unterstützen sollen (z. B. das Akzeptieren des Datenaustauschformats LDIF). RFCs sind frei im Internet verfügbar, am Ende des Kapitels finden Sie auch Quellen zu den Dokumenten, auf die in diesem Buch Bezug genommen wird.

Das standardisierte Kommunikationsmodell sorgt dafür, dass Sie mit LDAP-Clients auf beliebige Serverprodukte zugreifen können. Die Situation ist vergleichbar zu HTTP, wo jeder Webbrowser mit jedem Webserver kommunizieren kann. Durch das vereinheitlichte Informationsmodell (Kapitel 2.2) gleichen sich zudem die zugrunde liegenden Strukturen. Insgesamt können Sie daher einmal erworbene Kenntnisse (sowohl in Werkzeugen als auch in Konzepten) in Projektsituationen mit völlig unterschiedlichen Verzeichnislösungen einsetzen. Sie können von diesem Buch profitieren, ganz unabhängig von dem konkreten Softwareprodukt, das Sie einsetzen wollen. Auch wenn fast so wie in George Orwells „Farm der Tiere“ LDAP-basierte Verzeichnislösungen nur mehr oder weniger gleich sind. Unterschiede sind neben Spielräumen, welche die RFCs einräumen, auch darin begründet, dass der Standard zu bestimmten Aspekten gar keine Aussage macht. So ist z. B. nicht spezifiziert, wie Berechtigungen (ACLs, Access Control Lists) konkret durch die Hersteller zu implementieren sind. Folgerichtig unterscheiden sich die Produkte in diesem Bereich. Auch bei Betriebsaspekten (Installation, Konfiguration, Administration) haben die Hersteller gute Möglichkeiten, sich durch die Bereitstellung spezieller Funktionen und Werkzeuge von der Konkurrenz zu unterscheiden.

„LDAP certified“

Die herstellerneutrale Open Group vergibt nach erfolgreichem Durchlaufen einer umfangreichen Testsuite für LDAP-Produkte das Qualitätssiegel „LDAP certified“ [2.2]. Diese Tests stellen ein Mindestmaß an Interoperabilität sicher, fordern aber natürlich kein bestimmtes Verhalten in den Bereichen, die nicht durch RFCs festgelegt sind. Weiterhin lassen auch nicht alle LDAP-Anbieter ihre Produkte durch die Open Group zertifizieren.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -