ADAM/ AD LDS - der kleine LDAP-Server

ADAM ist lizenztechnisch Bestandteil der Windows 2003 R2-Editiion. Es ist kein eigenständig erwerbbares Produkt. Es kann von Microsofts Webseite heruntergeladen und auf Windows XP und Windows 2003 Server installiert werden.

ADAM Nachfolger AD LDS auch für Windows 7
http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=a45059af-47a8-4c96-afe3-93dab7b5b658

ADAM steht für "Active Directory Application Mode" und ist quasi ein LDAP-Server für eigene Zwecke. ADAM kann auf einem Windows Server 2003 aber sogar Windows XP installiert werden und wird hauptsächlich von Anwendungen genutzt, die per LDAP Daten abfragen und ablegen wollen, aber dies nicht im produktiven Active Directory tun wollen. Hier ein paar Erfahrungswerte zu ADAM:

Damit ist ADAM einfach ein kompakter LDAP-Server, der für bestimmte Einsatzbereiche sehr viel besser geeignet ist, als z.B. ein SQL-Server. Natürlich könnte eine Anwendung ihre Daten auch einem SQL-Server oder der SQL-Express-Version (Siehe SQL-Server) ablegen aber oftmals ist der Zugriff per LDAP einfacher und universeller und gerade die Möglichkeit einer Replikation auf mehrere Server ist ein großer Vorteil des Active Directory und von ADAM. ADAM nutzt LDAP statt SQL und erlaubt eine Hierarchie der Objekte und nicht die SQL-typischen Tabellen. Überlegen Sie daher einfach mal, welche Informationen Sie speichern wollen. Vielleicht ist ADAM der ideale Platz dafür.

Download:
http://www.Microsoft.com/downloads/details.aspx?familyid=9688F8B9-1034-4EF6-A3E5-2A2A57B5C8E4&displaylang=en

ADAM Installation

Die Installation von ADAM erfolgt zweistufig.

Hier die wesentlichen Schritte in Bildern:

Nach dem Start der Installationsquelle und der Bestätigung der Lizenzbedingungen startet auch direkt die Installation. Ein Zielpfad oder anderen Optionen wird gar nicht erst gefragt.

Damit ist aber noch kein Dienst installiert. Allerdings haben alle Dateien ihren Weg in das Zielverzeichnis gefunden:

Ein Protokoll der Installation wird in der Daten "ADAM.log" im Windows Verzeichnis abgelegt. Die eigentliche Installation beginnt jetzt durch den Start von "adaminstall.exe". Nach dem obligatorischen Begrüßungsbildschirm kommt die erste wichtige Frage:

Hiermit entscheiden Sie, ob es eine neue Instanz wird oder ob sie ein Replikat einer bestehenden Installation auf einem anderen Server anlegen wollen. Eine weitere Instanz kann z.B.: eine geografische Verteilung erlauben oder auch einfach nur eine Skalierung ermöglichen.

Als nächstes müssen Sie sich einen Namen für die Instanz ausdenken.

Es ist problemlos möglich, auf einem Server mehrere Instanzen des ADAMs zu starten. Damit es dabei nicht zu Konflikten kommt, müssen Sie natürlich individuelle Ports pro Instanz definieren.

Eine Bindung auf explizite IP-Adressen scheint nicht einfach möglich zu sein. Zuletzt müssen Sie sich dann noch über die Partitionen Gedanken machen. Im Active Directory kennen Sie sicherlich, dass es je eine Partition für das Schema, die Configuration und letztlich auch die Domain gibt. Aber es kann noch weitere Partitionen geben. Auch bei ADAM gibt es von Anfang an nur das Schema und die Configuration. Anwendungen sollten Ihre Daten in einer eigenen Partition ablegen:

Meist legt eine Anwendung, die ADAM voraussetzt, selbst diese Partition. Sie können aber hier auch selbst eine Partition anlegen. Dann muss nur noch der Pfad zur Datendank angegeben werden:

Dann noch den Benutzer angeben, mit dem der Dienst ausgeführt wird:

Und dann muss natürlich noch ein Administrator angegeben werden, welcher Anfang die Berechtigungen innerhalb der ADAM-Datenbank hat. Das ist normalerweise das Konto, welches auch gerade die ADAM-Instanz installiert. Alternativ können Sie natürlich auch ein lokale oder Domänenkonto anlegen und Eintragen. Ich habe bei dem Beispiel einen lokalen Benutzer eingetragen, da mein PC nicht immer eine Verbindung zur Domäne hat.

Und dann müssen Sie ADAM noch mitteilen, welche Attribute und Klassen im Schema eingerichtet werden sollen. Sie müssen mindestens eine Klasse auswählen:

Eine kurze Zusammenfassung zeigt ihnen vor der eigentlichen Einrichten noch mal die Werte an:

Der Installer legt die Datenbanken und die Dienste an, importiert die LDIF-Dateien und meldet am Schluss den Vollzug:

Die Existenz von Adam erkennen Sie an einem neuen Eintrag im Startmenü, dem Dienst und einem eigenen Eventlog für ADAM.

Wenn Sie im Taskmanager nach dem Prozess suchen, dann finden sie einen DSAMAIN.EXE. Den gleichen Namen hatte Microsoft schon für den Exchange 5.5 Verzeichnisdienst ausgewählt.

Deinstalliert wird die ADAM Instanz einfach für die Systemsteuerung

Mit ADAM arbeiten

Was Sie nun installiert haben, ist ein LDAP-Server mit den grundlegenden Strukturen und einen Benutzer, der über entsprechende Berechtigungen verfügt. Ansonsten können Sie mit diesem LDAP-Server alles anstellen, was Sie auch mit dem Active Directory machen können. Nur zur Authentifizierung eignet sich ADAM nicht.

Mit der Installation von ADAM wird auch eine ADAM-taugliche Version von ADSIEDIT mitgeliefert und auch eine ADAM-taugliche Version der Schema-Snapins. Aber auch Hilfsprogramme wie der "ADSchemaAnalyzer.exe" und "adamsync.exe" haben sich auf die Festplatte breit gemacht.

ADAM lesen und schreiben

Wie jeder andere LDAP-Server auch, können Sie die ADAM-Instanz einfach per ADSI und LDAP ansprechen. Nur muss diesmal explizit der Hostname und optional auch Port mit angegeben werden, damit ADSI nicht automatisch das Active Directory nutzt, z.B.:

set ou = GetObject("LDAP://adamhost:389/dc=msxfaq")

Wenn Sie statt dessen einfach nur folgendes versuchen, dann wird ADSI im Active Directory versuchen diesen Kontext zu finden

set ou = GetObject("LDAP://DC=MSXFAQ")

Das geht natürlich daneben. Die die Anmeldung hingegen kann ADSI und ADAM schon ihre aktuellen Anmeldedaten nutzen.

Wenn Sie einmal die DNs der verschiedenen Partitionen vergessen haben, dann starten sie einfach das Programm LDP und verbinden sich mit dem LDAP-Server. LDP zeigt nach der Verbindung die Funktionalitäten und auch die vorhandenen "Naming Context"-Einträge an.

ADAMSync

Interessant wird ADAM aber erst, wenn Sie Daten in ADAM replizieren. Dazu dient ADAMSync. An einem konkreten Beispiel möchte ich das erläutern. Stellen Sie sich vor, Sie haben eine Anwendung X, welcher per LDAP bestimmte Informationen abrufen möchte. So könnte ein Faxserver z.B. die Faxnummer des Anwenders auslesen, um das Fax in die Mailbox zustellen zu können. Das Problem hierbei erkennen besonders große Firmen, da nicht alle Felder im Active Directory mit einem Index versehen sind. Entsprechend ineffektiv kann eine Suche dazu aussehen und den DC über Gebühr beanspruchen. Je größer die Infrastruktur ist, desto weniger Interesse besteht natürlich an einer Änderung des Schemas. Schließlich bedeutet eine Änderung eine große Replikation. Das gleiche gilt, wenn Produkte eigene Daten durch eine Schemaerweiterung hinterlegen möchten. Um z.B. eine einfache unidirektionale Replikation des AD zu  ADAM zu erreichen, sind folgende Schritte erforderlich:

ldifde -i -s localhost:389 -c CN=Configuration,DC=X #ConfigurationNamingContext -f MS-AdamSchemaW2k3.ldf

ldifde -i -s localhost:389 -c CN=Configuration,DC=X #ConfigurationNamingContext -f MS-AdamSyncMetadata.ldf

Wenn der aktuelle Anwender nicht zugleich Admin über ADAM ist, dann können Sie einfach Anmeldedaten mit "-b Username Domäne Kennwort" angeben.

ADAMSync /install localhost:389 %windir%\ADAM\msxfaq.xml

adamsync.exe /sync localhost:389 dc=msxfaq,dc=local

Allerdings muss ich zugeben, dass es mir bislang einmal mit viel Mühe gelungen ist, mit ADAMSync ein paar Benutzer zu übernehmen. Aber aufgrund der Einschränkungen habe ich den Weg nicht weiter verfolgt

ADAMSync ist in der Funktion eingeschränkt. So kann es keine Felder umschreiben und repliziert nur vom Active Directory zu ADAM in einer Richtung. Auch werden keine Kennworte mit abgeglichen.

Aus diesem Grunde gibt es zwei Alternativen:

Es gibt mittlerweile noch andere Werkzeuge zum LDAP-Abgleich verschiedener Hersteller. Aber die wenigsten sind für kleines Geld zu bekommen. Auf der Seite Verzeichnisabgleich finden sie einige Link.

Weitere Links

ADAMSYNC is a command-line utility that performs a one-way synchronization of data from Active Directory into ADAM. Adamsync uses an XML-based con-figuration file that drives the parameters of the ongoing synchronization

Keywords:ADAM LDAP