LDAP für Java-Entwickler
von Stefan Zörner
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
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

Abb. 2: Ein neues Verbindungsprofil anlegen
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 |