Abgespecktes Active Directory

Mit ADAM bietet Microsoft eine Light-Version seines Active Directory, die primär für die Nutzung aus spezifischen Anwendungen gedacht ist.

Artikel erschienen in Swiss IT Magazine 2007/12

     

Mit der Einführung von ADAM (Active Directory Application Mode), das nun auch Teil des Windows Server 2003 R2 ist, hat Microsoft die Möglichkeit geschaffen, neben dem zentralen Active Directory weitere Instanzen von Verzeichnisdiensten auf einem Server zu betreiben. Der Grund dafür ist einfach: Wenn man nur mit dem Active Directory arbeiten würde, müsste für alle spezifischen Anforderungen von Anwendungen das Schema erweitert werden. In vielen Fällen ist das nicht wünschenswert, da es die Last auf Domänencontrollern erhöht und die Struktur des Active Directory immer unübersichtlicher macht. Zudem werden Anwendungen, die eigene Verzeichnisdaten speichern, oft nur von wenigen Anwendern genutzt. Auch für eine optimale Lastverteilung auf Servern und für die Reduktion der Replikationslast spricht daher einiges für die Verwendung zusätzlicher Anwendungsverzeichnisse. Hinzu kommt, dass von ADAM mehrere Instanzen auf einem Server ausgeführt werden können, was beim Active Directory selbst nicht der Fall ist.


Das Konzept

ADAM ist eine einfachere Variante des Active Directory, die primär als reiner LDAP-Server eingesetzt werden soll. Als Authentifizierung werden beispielsweise nur die LDAP-Authentifizierung sowie eine Passthrough-Authentifizierung mit dem Active Directory unterstützt. Dagegen gibt es keine native Kerberos-Unterstützung wie beim Active Directory.
Ein weiterer Unterschied ist, dass bei ADAM keine spezifischen Infrastruktur-Daten verwaltet werden. Im Active Directory werden beispielsweise Computerkonten, Informationen zu den Gruppenrichtlinien oder Daten der DNS-Infrastruktur gehalten. All das fehlt bei ADAM. Was genau in den ADAM-Verzeichnissen abgelegt wird, wird vielmehr von den Anwendungen gesteuert, die ADAM nutzen.
Damit ist ADAM aus Sicht von Microsoft auch eine Alternative zu anderen LDAP-Verzeichnisdiensten – der Overhead des Active Directory entfällt, es können mehrere Instanzen auf einem Server betrieben werden und das System unterstützt LDAP als Zugriffsstandard. Zusätzlich gibt es aber einfache Synchronisierungsmechanismen mit dem Active Directory und den MIIS 2003, falls man eine engere Integration wünscht oder komplexere Infrastrukturen mit vielen ADAM-Servern verwalten muss. Falls man sich auf die einfachere Synchronisation beschränkt, ist der Active Directory to ADAM Synchronizer das Mittel der Wahl. Dieses Tool kann kostenlos von der Microsoft-Website geladen werden.






Einsatzszenario für ADAM


Die Installation

Beim Windows Server 2003 R2 erfolgt die Installation von ADAM entweder zusammen mit einer Anwendung als Komponente eben dieser Anwendung oder über den Bereich Software der Systemsteuerung. Dort kann bei Windows-Komponenten hinzufügen/entfernen die Option Active Directory-Dienste ausgewählt werden. Bei diesen gibt es als eine Teilkomponente wiederum Active Directory-Anwendungsmodus (ADAM). Die Installation erfolgt ohne weitere Abfrage von zusätzlichen Parametern.
Damit ist zunächst nur ADAM als Komponente installiert, aber noch keine ADAM-Instanz vorhanden. Diese muss nun noch mit dem Assistenten für die Erstellung von ADAM-Instanzen, adamsetup.exe, eingerichtet werden. Der Assistent kann über die Befehlszeile parametrisiert oder über den Befehl ADAM-Instanz erstellen im Menü ADAM gestartet werden.
Die Instanz kann als neue Instanz oder als Replika einer vorhandenen Instanz erzeugt werden. Die Replikation wird also auch bei ADAM unterstützt. Der Instanz muss ein Name gegeben werden, der eindeutig ist. Er sollte auch sprechend sein, um ADAM-Instanzen einfach identifizieren zu können. Falls mehrere Instanzen oder andere LDAP-Dienste – einschliesslich des Active Directory – auf dem Server ausgeführt werden, müssen im nächsten Schritt die LDAP-Portnummern angepasst werden, da jede Instanz über eindeutige Portnummern verfügen muss.
Falls man ADAM manuell installiert, sollte man im nächsten Schritt auch eine Anwendungsverzeichnispartition erzeugen, die einen eindeutigen Namen haben muss. Diese Partition kann anschliessend manuell mit Daten gefüllt werden. Wenn ADAM als Teil einer Anwendung genutzt wird, sollte diese die Partition automatisch erstellen. Weitere Schritte sind die Festlegung des Speicherorts der ADAM-Dateien und die Auswahl des Dienstkontos. Ausserdem können gleich Administratoren festgelegt werden.


Benutzerklassen

Im nächsten Schritt wird gefragt, ob und welche Benutzerklassen importiert werden sollen. Hier sollte man in jedem Fall eine der Klassen auswählen, abhängig von der geplanten Nutzung der ADAM-Instanz. Sonst kann man keine Benutzer mit ADAM verwalten.
Es gibt vier LDF-Dateien (LDIF, Lightweight Directory Interchange Format), die man importieren kann. Eine der Klassen unterstützt das lokale Management von Benutzern, wobei mit dem Objekt user gearbeitet wird, eine weitere verwendet inetOrgPerson als Objekt. Die dritte ist für die Situationen gedacht, in denen ADAM mit dem Active Directory integriert ist und damit letztlich auch als Proxy für den Zugriff auf Benutzerinformationen aus dem Active Directory dient. Schliesslich gibt es noch eine spezielle Klasse für die Nutzung von ADAM in Verbindung mit dem Windows Authorization Manager (azman.exe).


Die Administration

Deutlich weniger attraktiv ist die Administration von ADAM gestaltet. Es gibt zwar eine relativ lange Liste von Administrationswerkzeugen. Dabei handelt es sich aber zum grössten Teil um manchmal recht komplexe Befehlszeilenwerkzeuge. So gibt es beispielsweise dsdbutil.exe als Variante von ntdsutil.exe, csvde.exe für den Import von CSV-Dateien, aber auch grafische Standardwerkzeuge wie ldp.exe oder repadmin.exe, die ebenfalls nur für erfahrene Administratoren gedacht sind.
Zwei spezielle Snap-ins für die MMC sind der ADAM-ADSI-Editor und ADAM-Schema. Die erste der beiden Komponenten wird für die Low-Level-Bearbeitung der Inhalte von ADAM-Verzeichnissen benötigt und ist das Pendant zum ADSI-Editor, einem Werkzeug, das ebenfalls nur für sehr erfahrene Administratoren gedacht ist. Mit dem zweiten Snap-in kann das Schema-Management im Active Directory betrieben werden. In diesem Bereich liegt sicherlich eine der grössten Schwächen, die ADAM aktuell aufweist.
Um ADAM zu verwalten, gibt es damit im wesentlichen zwei Optionen. Zum einen kann man über diese Schnittstellen arbeiten. Zum anderen kann man die Funktionalität in Anwendungen integrieren. Da ADAM primär für Anwendungsverzeichnisse gedacht ist, ist das auch der naheliegende Weg.
Bei ADAM wird übrigens jede Instanz als Dienst ausgeführt. Entsprechend wird auch ein Dienstkonto benötigt. Das Dienstkonto kann mit dsdbutil.exe und dort mit dem Befehl change service account angepasst werden. Das Konto muss in jedem Fall die Berechtigung Anmelden als Dienst besitzen. Um die aufwendige Anpassung der Dienstkonten zu vermeiden, sollte man darauf achten, bereits bei der Installation das richtige Konto auszuwählen.


Der ADAM-Nachfolger

Interessant ist ein Blick auf den kommenden Windows Server 2008 (Codename «Longhorn»). Dort wird ADAM als AD LDS (Active Directory Lightweight Directory Services) bezeichnet und kann als zusätzliche Serverrolle installiert werden. Im Add Roles-Assistenten muss nur die entsprechende Serverrolle ausgewählt werden. Weitere Parameter sind an dieser Stelle nicht erforderlich.
Leider hat sich auch bei der aktuellen Vorversion des Windows Server 2008 nichts bei den Verwaltungswerkzeugen getan. Der Assistent für die Einrichtung des Werkzeugs ist sogar vollkommen identisch. Das ist insofern bedauerlich, als die Nutzung von ADAM damit doch recht tiefgreifende Kenntnisse im System erfordert.


Ein Werkzeug für Entwickler

Letztlich ist ADAM vor allem auch ein System für Anwendungsentwickler. Diese sollten die spezifischen Anpassungen des Schemas und die Schnittstellen für das Schreiben und Lesen von Informationen im Verzeichnis als Teil ihrer Anwendungen realisieren.
Schade ist, dass Microsoft einen Ansatz gewählt hat, bei dem man ADAM nicht so einfach als schlankes LDAP-Verzeichnis nutzen kann wie viele andere Produkte, die zumindest noch über eine eigene, grafische Verwaltungsschnittstelle verfügen. Mit ADAM nur mal etwas zu «spielen», um ein Gefühl dafür zu bekommen, geht nicht – es sei denn, man ist ohnehin mit den spezielleren Verwaltungswerkzeugen des Active Directory vertraut, die sich ja in ähnlicher Weise bei ADAM wiederfinden.
Allerdings gibt es inzwischen am Markt doch etliche Anwendungen, die ADAM unterstützen. Das gilt beispielsweise für den Exchange Server 2007 und die dortigen Edge-Server, aber auch für verschiedene Meta-Directory- und Provisioning-Lösungen aus dem Identity-Management-Umfeld sowie etliche Anwendungen von Microsoft-Partnern, die spezifische Anwendungsdaten speichern müssen. In solchen Fällen sieht man als Nutzer und auch als Administrator ohnehin relativ wenig von ADAM.
Als Anwendungsentwickler, der ADAM nutzen möchte, kommt man aber nicht umhin, sich mit Funktionen wie dem Schema-Management zu beschäftigen, um ADAM automatisiert im Rahmen von Setup-Prozessen an die spezifischen Anforderungen der Anwendung anzupassen. Das gilt aber in gleicher Weise auch für andere Verzeichnisdienste.




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Was für Schuhe trug der gestiefelte Kater?
GOLD SPONSOREN
SPONSOREN & PARTNER