Mehr Flexibilität beim Active-Directory-Design
Artikel erschienen in Swiss IT Magazine 2004/20
Die Wurzeln des Active Directory liegen beim LAN-Manager, der mit seinem – an den damaligen «Yellow Pages» orientierten – Domänenkonzept Strukturen geschaffen hat, die sich etwas erweitert auch bei Windows NT gefunden haben. Und weil der Übergang zum Active Directory möglichst reibungslos sein sollte, gibt es die Domänen eben auch dort. Sie können nun zwar in übergeordneten Strukturen mit Domänenbäumen und Forests zusammengefasst werden, aber viele Funktionen hängen eben doch noch an der Domäne. Das galt bisher auch für die Vertrauensstellungen.
Beim Konzept der Vertrauensstellungen (Trusts) sind zwei Ansätze zu unterscheiden. Zum einen gibt es implizite, transitive Trusts, die innerhalb eines Forest erzeugt werden. Zwischen jeweils zwei direkt benachbarten Domänen gibt es beidseitige Vertrauensstellungen. Zwischen einer Domäne sales.zh. ch.firma.net und einer Domäne sales.nyc.us.firma.net besteht zwar keine direkte, aber eine indirekte Vertrauensstellung. sales.zh.ch.fir ma.net vertraut zh.ch.firma.net, die wiederum ch.firma.net vertraut. Das geht über firma.net so weiter, bis man wieder unten bei sales.nyc. us.firma.net angelangt ist. Transitivität bedeutet, dass keine direkte Vertrauensstellung erforderlich ist und dennoch ein Benutzer aus sales.zh.ch.firma.net Zugriffsberechtigungen in der Domäne sales.nyc.us.firma.net erhalten kann und umgekehrt.
Explizite Vertrauensstellungen sind in mehreren anderen Situationen wichtig. Mit ihnen können Vertrauensstellungen zwischen Windows-NT- und Active-Directory-Domänen definiert werden. Sie lassen sich so für den Aufbau von kürzeren Wegen zwischen zwei Domänen verwenden. Bis im oben genannten Fall die Authentifizierung erfolgt ist, müssen meist ziemlich viele Systeme miteinander kommunizieren. Wenn solche weit entfernten Vertrauensstellungen oft benötigt werden, macht deshalb eine Abkürzung Sinn, bei der sich die Domänen zusätzlich direkt vertrauen. Explizite Vertrauensstellungen sind aber bis Windows 2000 auch erforderlich, damit eine Domäne aus dem einen Forest einer solchen aus einem anderen Forest überhaupt vertrauen kann – wobei diese Beziehung dann pro Paar von Domänen konfiguriert werden muss.
Nun gibt es aber viele Gründe dafür, nicht nur mit einem einzigen Forest zu arbeiten, sondern mit mehreren. Manche Unternehmen haben ihre Exchange-Infrastruktur gesondert von der Active-Directory-Infrastruktur aufgebaut, sei es wegen der für Exchange erforderlichen Schema-Erweiterungen oder wegen der Anforderung nach anderen Verzeichnisstrukturen in der Exchange-Umgebung. Nach Unternehmenszusammenschlüssen gibt es fast zwangsläufig mehrere Forests. Oft haben Unternehmensbereiche diese aber auch mehr oder minder unkoordiniert aufgebaut. Was auch immer der Grund ist: Mit expliziten Vertrauensstellungen ist das nicht effizient zu bewerkstelligen, sobald es in den Forests mehrere Domänen gibt und verschiedene Domains einander vertrauen müssen.
Cross-Forest-Trusts erlauben es nun, mit einem einzigen Verwaltungsschritt eine Vertrauensstellung aufzubauen, die zwischen allen Domänen der beiden Forests transitiv arbeitet. Was nicht funktioniert ist, dass Forest A eine solche Vertrauensstellung mit Forest B und Forest B wiederum eine mit Forest C hat und dann alle Domänen aus Forest A auch denen in Forest C vertrauen. Die Cross-Forest-Trusts sind also auf dieser Ebene nicht transitiv. Vielmehr müsste hier zusätzlich eine Vertrauensstellung zwischen Forest A und Forest C definiert werden.
Die Verwaltung von Cross-Forest-Trusts ist recht einfach. Voraussetzung sind Domänencontroller unter dem Windows Server 2003 und mit einer Gesamtstrukturfunktionsebene, die auf Windows Server 2003 gesetzt ist. Nur in diesem Fall stehen die erforderlichen Schema-Erweiterungen für die Cross-Forest-Trusts zur Verfügung. Die Gesamtstrukturfunktionsebene kann wiederum nur auf diesen Status gesetzt werden, wenn die Domänenstrukturfunktionsebenen aller Domänen im Forest bereits auf dem Status Windows Server 2003 sind. Dies muss explizit über den Befehl Gesamtstrukturfunktionsebene heraufstufen im Root von Active-Directory-Domänen und – Vertrauensstellungen vorgenommen werden.
Die Vertrauensstellungen werden darauf ebenfalls in diesem Programm verwaltet. Dort lässt sich für die Forest-Root-Domäne, also die erste in einem Forest erstellte Domäne, der Befehl Eigenschaften im Kontextmenü aufrufen, worauf man in das Register Vertrauensstellungen wechselt. Mit Neue Vertrauensstellung wird der Assistent für die Definition der Vertrauensstellung gestartet und der DNS-Name der Forest-Root-Domäne angegeben, mit der eine Vertrauensstellung aufgebaut werden soll. Anschliessend muss man auswählen, ob es sich um eine externe (explizite) Vertrauensstellung zwischen der aktuellen Domäne und der Forest-Root-Domäne des anderen Forest oder aber um eine Gesamtstrukturvertrauensstellung handeln soll. Anschliessend wird noch festgelegt, ob die Vertrauensstellung bi- oder unidirektional funktionieren soll. Bidirektionale Vertrauensstellungen werden darauf in beiden Forests automatisch konfiguriert, wobei man allerdings über administrativen Zugriff in beiden Forests verfügen muss.
Bei der Arbeit mit Cross-Forest-Trusts lässt sich ausserdem definieren, ob es automatisch eine Authentifizierung aller Benutzer aller Domänen in den jeweils anderen Domänen der beiden Forests geben oder ob explizit für bestimmte Domänen und Server eine entsprechende Auswahl getroffen werden soll. Letzteres kann beispielsweise sinnvoll sein, wenn für die überwiegende Zahl der Domänen solche Zugriffe möglich sein sollen, aber eben nicht für alle.
Nachdem die Vertrauensstellungen erstellt sind, lässt sich Benutzern aus einer Domäne in Forest A Zugriffsberechtigungen auf Ressourcen einer Domäne in Forest B geben – ohne den Benutzer mehrfach anzulegen oder explizite Vertrauensstellungen zwischen den Domänen zu definieren.
Cross-Forest-Trusts sind ein probates Mittel, um zwei Forests miteinander zu verbinden, wenn eine relativ weitgehende Integration erreicht werden soll. Diese enge Bindung ist aber nicht immer erwünscht. Ein Ansatz zur Lösung dieses Problems kann die Einschränkung der Authentifizierung auf ausgewählte Domänen sein. Die meist praktischere Alternative sind aber Meta-Directory-Dienste wie Microsoft MIIS oder, wenn auch andere Verzeichnisse eingebunden werden müssen, auch Produkte von Novell, Siemens, Maxware oder anderen Anbietern. Als einfachere Variante des MIIS kommt häufig auch das Identity Integration Feature Pack für den Windows Server 2003 in Frage. Damit lassen sich Informationen zwischen ausgewählten Domänen in den Forests synchronisieren, gleichzeitig wird aber keine engere Integration beispielsweise für die Authentifizierung hergestellt. Der Vorteil ist, dass dadurch die beiden Domänen als zwei entkoppelte Strukturen erhalten bleiben. Der Nachteil liegt darin, dass eine solche Integration ungleich mehr Aufwand bedeutet. Da stehen neben den Lizenzkosten für den Microsoft SQL Server vor allem auch die Projektkosten für ein solches Meta-Directory-Projekt im Vordergrund.
Cross-Forest-Trusts sind die Lösung für die Integration von zwei Forests, in denen Benutzer nur einmal verwaltet werden sollen. Es gibt aber Alternativen dazu, die ebenso evaluiert werden müssen wie die Konsequenzen in bezug auf die Sicherheit, wenn nun allen Benutzern aus Forest A auch Zugriffsberechtigungen in Forest B gegeben werden können.