Ein erster Kontakt

LDAP für Java-Entwickler
Kommentare

In vielen Unternehmen und Organisationen haben Verzeichnisse zur Speicherung und effizienten Bereitstellung von Informationen eine strategische Bedeutung. Häufigste Anwendung ist die zentrale Verwaltung von Benutzern und deren Berechtigungen. Das Lightweight Directory Access Protocol (LDAP) ist der vorherrschende Zugriffsmechanismus auf Verzeichnisdienste; er wird von allen gängigen Softwarelösungen – freien und kommerziellen – unterstützt.

Verzeichnislösungen dienen zum Ablegen und Abfragen von Informationen aller Art. Auf den ersten Blick stehen sie damit als Datenspeicher in Konkurrenz zu den etablierten relationalen Datenbanken. Tatsächlich werden in den meisten großen Unternehmen und Organisationen jedoch sowohl Verzeichnisse als auch relationale Datenbanken eingesetzt. Wo werden Verzeichnisse heute eingesetzt? Eine wesentliche Stärke vieler Verzeichnislösungen liegt in der Optimierung auf Lese- und Suchoperationen. Das macht die Produkte insbesondere als Speicher für Daten interessant, die deutlich häufiger abgefragt als manipuliert werden. Weiterhin bieten die Produkte gute Unterstützung bei der Implementierung verteilter Lösungen. Konsequenterweise ist der häufigste Einsatz von Verzeichnissen die unternehmensweite Verwaltung von Benutzerdaten und Berechtigungen, insbesondere bei Organisationen mit vielen Standorten. Verzeichnisse bilden einen elementaren Bestandteil von Single-Sign-on- und PKI-Lösungen (PKI steht für Public Key Infrastructure. Eine solche umfasst in der Regel die Ausgabe digitaler Zertifikate an Benutzer, welche in einem Verzeichnis verwaltet werden.) und gehen nicht selten über die Verwaltung von Mitarbeiterdaten hinaus. Auch Kunden und Partner greifen heute auf Unternehmensdaten zu; sie und ihre Berechtigungen wollen ebenfalls verwaltet und geprüft werden. Viele Unternehmen legen Beschreibungen ihres Besitzes und ihrer Organisationsstruktur in einem Verzeichnis ab (z.B. Hard- und Software, Niederlassungen, Abteilungen). Eine gängige Anwendung ist auch die Speicherung von Konfigurationsdaten für Applikationen als Alternative zu Property Files. Die Speicherung benutzerbezogener Daten wird in diesem Zusammenhang gerne zur Personalisierung von Anwendungen eingesetzt, etwa in Portalen.
LDAP für Java-Entwickler von Stefan Zörner

Dieser Onlineartikel ist ein Auszug aus dem Buch „LDAP für Java-Entwickler. Eine praxisorientierte Einführung“ von Stefan Zörner, das bei entwickler.press erschienen ist. Sie können das Buch im Onlineshop von entwickler.press erwerben.

entwickler-press.de

Dieser Artikel geht genauer auf Verzeichnislösungen ein, die LDAP (Lightweight Directory Access Protocol) unterstützen. Es soll gezeigt werden, wie Sie LDAP-fähige Verzeichnisse aus Java heraus ansprechen können. Zunächst jedoch nehmen Sie Kontakt auf mit einem konkreten Verzeichnis, um einen ersten Eindruck zu erhalten, wie in einem derartigen Datenspeicher Informationen abgelegt sind.
Requisiten
Was brauchen Sie, um loszulegen? Die TCP/IP-basierte Kommunikation mit Verzeichnissen erfolgt nach dem Client-Server-Modell, LDAP ist ein entsprechendes standardisiertes Protokoll. Um die Inhalte des Artikels praktisch nachvollziehen zu können, benötigen Sie daher Zugriff auf einen LDAP-Server. Dazu gibt es folgende Optionen:
  • Installation eines eigenen Servers zu Testzwecken
  • Zugriff auf ein bestehendes Verzeichnis in Ihrem Unternehmen
  • Verwendung eines öffentlichen Verzeichnisses im Internet
Der jeweilige Vorbereitungsaufwand für diese Wahlmöglichkeiten nimmt in der Reihenfolge der Auflistung ab, der Spielraum allerdings auch. Wenn Sie umfassende Erfahrungen in diesem Thema sammeln wollen, sei Ihnen daher das Aufsetzen eines eigenen LDAP-Servers zu Testzwecken ans Herz gelegt.
Installation eines eigenen Servers
Da alle gängigen Verzeichnisprodukte LDAP unterstützen, haben Sie zahlreiche Softwarelösungen (freie und kommerzielle) zur Auswahl. Hier soll keine eindeutige Produktempfehlung ausgesprochen und insbesondere keine Installationsanleitungen reproduziert werden, die Sie ohnehin stets aktuell gemeinsam mit der Software erhalten. Die folgenden Hinweise sollen lediglich ein wenig Orientierung geben. Falls Sie im Unix-Umfeld zu Hause sind und den Server z.B. unter Linux betreiben wollen, ist OpenLDAP eine attraktive Option. Das Projekt stellt einen leistungsfähigen LDAP-Server als Open-Source-Lösung bereit. Unter Windows ist Active Directory zwar eine nahe liegende Wahl, jedoch setzt es Windows 2000 oder 2003 Server voraus und entzieht sich so gegebenenfalls einer Testinstallation ohne großen Aufwand. Mit ADAM (Active Directory Application Mode) stellt Microsoft eine schlankere Option auch für (XP-)Workstations bereit. Interessant kann auch das Zurückgreifen auf eine Testversion von Sun Java System Directory Server sein. Das Produkt ist vergleichsweise einfach auf Windows 2000/XP zu installieren, ohne eine Serverversion des Betriebssystems vorauszusetzen. Auch unter Unix ist dieser Server als Testversion verfügbar (z.B. Solaris, Linux) und eine interessante, weil leistungsfähige und zugleich recht unkomplizierte Wahl. Leider hat sich noch keine freie LDAP-Server-Implementierung etabliert, welche vollständig in Java realisiert ist und sich so auf praktisch allen Hard- und Softwareplattformen gleichförmig darstellen würde (so wie es Apache Tomcat bei den Servlet Engines tut). Als Kandidat für eine solche Lösung kommt in Zukunft vielleicht der Apache Directory Server in Frage.
Das Beispielverzeichnis
In diesem Artikel wird für Beispiele durchgängig ein Verzeichnis verwendet, das Daten des Deutschen Bundestags, die dessen Webauftritt entnommen wurden, zum Inhalt hat. Das Verzeichnis enthält Informationen zu allen Abgeordneten aus der 14. und 15. Legislaturperiode (Der 14. Deutsche Bundestag wurde am 27.09.1998, der 15. am 22.09.2002 gewählt.), sowohl textuelle (z.B. der Name) als auch binäre (ein Bild des Abgeordneten im JPG-Format). Wenn Sie einen eigenen Server aufgesetzt haben, können Sie die Daten des Beispiels in Ihr Verzeichnis importieren. Auf den Seiten des Software & Support Verlag finden Sie diese als Download im Datenaustauschformat LDIF. Kurzanleitungen zum Einspielen in gängige Verzeichnislösungen (u.a. Apache, OpenLDAP und Sun) stehen ebenfalls für Sie bereit. Abbildung 1 vermittelt bereits einen ersten Eindruck des Beispiels.
Kontakt aufnehmen
Alle gängigen Verzeichnisprodukte unterstützen dieses Protokoll. Sie können daher z.B. einen grafischen LDAP Client verwenden und sich mit einem beliebigen LDAP-fähigen Server verbinden, egal von welchem Hersteller und auf welcher Hard- und Softwareplattform. Dieser Ansatz dient hier vorrangig der Veranschaulichung, ist aber bei einer Verzeichnisintegration generell ein guter Startpunkt. Wenn man ein Verzeichnis in eine Softwarelösung einbinden will, erkundet man es am besten zuvor auf diese Weise, um die Verbindung zu prüfen und um die Struktur des Verzeichnisses und die Form der Einträge (d.h. der Daten) kennen zu lernen.
Abb. 1: Das Beispielverzeichnis im LDAP Browser der Firma Softerra
Als Client wird im Folgenden der „LDAP Browser“ der Firma Softerra verwendet (siehe Abbildung 1). Das Programm besticht neben seiner modernen, performanten Oberfläche vor allem durch die Tatsache, dass der Hersteller es kostenlos zum Download zur Verfügung stellt. Leider läuft es nur auf Windows-Plattformen und im Gegensatz zur kommerziellen Version („LDAP Administrator“) erlaubt es nur das Lesen, nicht jedoch das Anlegen oder Manipulieren von Einträgen. Alternativen zum Softerra LDAP Browser finden sich am Ende des Artikels. Sie haben eine vergleichbare und zum Teil auch mächtigere Funktionalität, beispielsweise lassen einige auch das Editieren im Verzeichnis zu. Auch frei verfügbare, reine Java-Lösungen sind darunter. Für das Nachvollziehen der folgenden Beispiele installieren Sie idealerweise nun eine der Lösungen. Nach Installation und Start des LDAP Browsers von Softerra muss zunächst ein neues Verbindungsprofil angelegt werden (Menü: FILE | NEW PROFILE). Dazu müssen der Hostname des Servers, der Port (Standard ist 389) und der so genannte Base DN bekannt sein (Abbildung 2). DN steht dabei für Distinguished Name und bezeichnet einen Knoten innerhalb der hierarchischen Struktur eines Verzeichnisses eindeutig. Der Base DN bildet den Einstiegsknoten für eine Verbindung. Andere Tools erwarten die gleichen Angaben zur Konfiguration. Bei modernen Verzeichnissen kann der verwendete Browser mögliche Basisnamen selbst ermitteln („Fetch DNs“).
Abb. 2: Ein neues Verbindungsprofil anlegen
Je nachdem, für welche Möglichkeit Sie sich für Ihren ersten Zugriff auf ein Verzeichnis entschieden haben (eigener Server, vorhandenes Verzeichnis im Unternehmen, öffentliches Verzeichnis im Internet), geben Sie die Daten zum Verbindungsaufbau an. Wenn Sie einen eigenen Server zu Testzwecken installiert haben, werden Sie Hostnamen und Port kennen. Die Beispiele dieses Artikels verwenden durchgängig einen Testrechner „magritte“ (Port 389) mit Base DN „dc=bundestag,dc=de“ (vgl. Abbildung 2). Welches Verzeichnisprodukt konkret verwendet wurde, ist in der Regel unerheblich. Tatsächlich wurden die Beispiele mit einer Reihe unterschiedlicher Lösungen getestet. Über das Internet sind zahlreiche Verzeichnisse öffentlich erreichbar, die Sie ebenfalls für Ihre ersten Schritte inspizieren können. Tabelle 1 listet einige mit den notwendigen Informationen auf. Am Ende des Artikels finden Sie Informationen zu weiteren öffentlichen Verzeichnissen.
Tabelle 1: Verbindungsdaten einiger öffentlicher LDAP-Server
Hostname Port LDAP Base DN
db.debian.org 389 v.3 dc=debian, dc=org
www.nldap.com 389 v.3 o=NOVELL
x500.bund.de 389 v.3 o=BUND,c=DE
www.openldap.com 389 v.3 dc=OPenLDAP,dc=org
Wahrscheinlich haben Sie neben diesen öffentlichen Verzeichnissen in Ihrem Unternehmen oder Projektumfeld auch Zugriff auf ein firmeneigenes LDAP-fähiges Softwareprodukt. Vielleicht benutzen Sie es täglich, ohne es zu wissen (z.B. durch das unternehmensweite Adressbuch, zur Illustration siehe Abbildung 3). In jedem Fall ist es sicherlich ein attraktives erstes Beispiel für Sie, da Sie bekannte Strukturen und gegebenenfalls auch Daten über sich und Ihre Kollegen wiederfinden können. Fragen Sie Ihre Netzwerkadministratoren freundlich nach den vorhandenen Zugriffsmöglichkeiten und Verbindungsdaten.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -