Directory Server à la Apache
Artikel erschienen in Swiss IT Magazine 2008/02
Mit dem Apache Directory Server gibt es inzwischen den dritten Open Source Directory Server nach OpenLDAP und dem Fedora Directory Server. Damit stellt sich automatisch die Frage nach dem Sinn und Anwendungszweck der Software – denn es gibt immerhin auch noch etliche kommerzielle Produkte.
Das Projektteam des Apache Directory Server hat sich dabei das hehre Ziel gesetzt, eine Renaissance von LDAP-Verzeichnisdiensten einzuleiten. Nach Ansicht der Projektgruppe ist die Nutzung von LDAP nicht annähernd so, wie sie eigentlich sein müsste. Um die Hürden, zu denen nach dieser Einschätzung die Komplexität von LDAP-Implementierungen und die Schwierigkeiten bei der Integration unterschiedlicher Anwendungen auf einem Server zählen, zu verringern, spielen im Projekt Aspekte wie die Vermeidung von komplexen Sprachen, eine flexible Erweiterbarkeit, leistungsfähige Tools und neue Funktionen wie Trigger und Ansichten eine wichtige Rolle.
Das Projekt umfasst daher auch nicht nur den Apache Directory Server (ApacheDS) selbst, sondern eine als Apache Directory Triplesec bezeichnete Lösung für die Integration der Zwei-Faktor-Authentifizierung und das auf Eclipse basierende Apache Directory Studio als Administrationswerkzeug.
Der ApacheDS steht aktuell in zwei Versionen zur Verfügung. Die Version 1.0 ist die stabile Basisversion, die im Wesentlichen ein einfacher LDAPv3-Server ist. Die Version 1.5.x bringt dagegen neue Funktionen. Zu diesen gehören ein dynamisches Schema sowie LDAP Stored Procedures und LDAP-Trigger. Funktionen wie die Multi-Master-Replikation und die dynamische Konfiguration sind für die weiteren Releases unterhalb der Version 1.5 noch in Planung. Erwähnenswert ist auch die direkte Unterstützung von Kerberos 5 und dem Change Password Protocol für die Kennwortänderungen.
Damit wird auch schon deutlich, wohin sich das Projekt entwickelt und wie es sich von anderen Ansätzen im Bereich LDAP unterscheidet. Es geht eben nicht darum, nur noch einen LDAP-Server zu realisieren, sondern einige der Herausforderungen, die LDAP mit sich bringt, zu adressieren. Allerdings wirft das gleich auch die Frage auf, warum man dabei LDAP in den Mittelpunkt stellt und nicht die generellen Herausforderungen im Bereich von Verzeichnisdiensten.
So fehlt beispielsweise die Unterstützung für DSML (Directory Service Markup Language) noch völlig. Mit dem angedachten Konzept der Views (Ansichten) wird man zwar eine Virtual-Directory-Funktionalität erhalten – warum man das dann aber nicht konsequent auch mit der Unterstützung von SQL und einem generischen Ansatz für die Passthrough-Authentifizierung macht, bleibt offen. Zudem sind eben auch grundlegende Funktionen wie die Multi-Master-Replikation noch nicht umgesetzt, was dazu führt, dass das Produkt für viele Anforderungen noch nicht geeignet ist.
Neben dem ApacheDS ist das Apache Directory Studio, aktuell
in der Version 1.0.1 verfügbar, das zweite wichtige Element im
Apache-Directory-Projekt. Dabei handelt es sich um eine Eclipse-Anwendung, die einerseits als LDAP-Client eingesetzt werden kann, andererseits aber auch eine grafische Konfigurationsschnittstelle für den ApacheDS bereitstellt.
Das Werkzeug kann prinzipiell mit jedem LDAP-Server genutzt werden, weil es über LDAPv3 arbeitet und damit grundsätzlich offen ist. Durch die Verwendung von Eclipse als Basis ist das Werkzeug einfach zu bedienen und grundsätzlich gut erweiterbar. Im Bereich der LDAP-Browser zählt das Apache Directory Studio zu den besseren Lösungen am Markt.
Die Einrichtung des ApacheDS
ist einfach. Man benötigt ein JRE (Java Runtime Environment) mindestens in der Version 5. Bei der Installation selbst sind dann nur noch allgemeine Parameter wie das Installationsverzeichnis erforderlich.
Im direkten Anschluss kann
(und sollte) man Dienstparameter konfigurieren. Dazu zählen die normalen Parameter für Dienste, aber beispielsweise auch die Festlegung der zu verwendenden JRE. Mit Use default kann auf die standardmässige JRE zugegriffen werden. Zu beachten ist, dass diese Option nicht standardmässig gesetzt wird, sondern generell eine Anpassung der Einstellungen im Register Java erfolgen muss.
Die genannten Stärken und Schwächen werfen zwangsläufig die Frage nach dem sinnvollen Einsatzbereich des Produkts auf. Das Projekt wird auch als «embeddable Directory Server» positioniert. Grundsätzlich gilt, dass man – wenn man einige der genannten Schwachstellen wie die Multi-Master-Replikation und die Sicherheitskonfiguration adressiert – durchaus eine Alternative insbesondere zu OpenLDAP hat.
Dagegen macht das Konzept von eingebetteten Verzeichnisdiensten generell wenig Sinn, weil man damit Insellösungen schafft. Dieser Ansatz steht zudem im Widerspruch zum Ziel einer breiteren, einfacheren und integrierten Nutzung von LDAP.
Letztlich wird die weitere Entwicklung des Projekts darüber entscheiden, ob und in welchen Bereichen man eine wirklich sinnvolle Lösung erhält. Die Ideen der Unterstützung von gespeicherten Prozeduren (Stored Procedures), Triggern oder Warteschlangen (Queues), die im Projekt verfolgt werden, sind ausgesprochen interessant, weil man damit LDAP einfacher nutzbar macht und ausserdem die Performance in vielen Fällen erhöhen kann.
Die grosse Schwäche ist aber, dass man sich viel zu sehr an LDAP und der Funktionalität klassischer Verzeichnisdienste orientiert, statt diese von Grund auf zu überdenken. Mehr Schnittstellen wie eben DSML und eine konsequente Integration von Virtual-Directory-Technologien wären sicher sinnvoll, um wirklich eine neue Entwicklungsstufe von Verzeichnisdiensten zu schaffen.
Derzeit gibt es im Apache-Directory-Projekt einige interessante Ansätze, aber auch noch viele Lücken. Die Version 1.0.x ist ohnehin nur ein durchschnittlicher LDAP-Server, der sich vor allem für Embedded-Anwendungen eignen dürfte. Die Version 2.0 könnte dagegen – wenn man den im aktuellen Zwischen-Release 1.5.x erkennbaren Status und die geplanten Entwicklungen nimmt – eine ernsthafte Konkurrenz zumindest für die etablierten Open Source Directory Server werden. Und richtig gemacht, kann der ApacheDS tatsächlich ein neuer, innovativer Verzeichnisdienst werden – und nicht nur «yet another Directory Server». Das wird aber nur gelingen, wenn man sich von der Fokussierung auf LDAP löst und die Verzeichnisdienstfunktionen einschliesslich der Virtualisierung in den Mittelpunkt stellt.