Der Verzeichnisdienst von Microsoft Windows 2000/2003 Server heißt Active Directory Service (ADS). Bei einem Verzeichnis (engl. Directory) handelt es sich um eine Zuordnungsliste, wie zum Beispiel bei einem Telefonbuch: Es ordnet Telefonnummern den jeweiligen Anschlüssen (Besitzern) zu. Das Active Directory ordnet verschiedenen Netzwerkobjekten wie Benutzern, Computern u.a. Eigenschaften zu und verwaltet diese.
Das Active Directory baut auf einer Datenbank auf, in der die Informationen über das Netzwerk wie Benutzer, Gruppen und Computer gespeichert werden. Diese Datenbank ist eine Jet (Blue)-Datenbank, die Microsoft auch für den Exchange Server einsetzt. Sie ist relational, transaktionsorientiert und benutzt ein so genanntes Write-Ahead-Logging.
Active Directory ist ein objektbasiertes Verzeichnissystem (im Gegensatz zum e-Directory von Novell, das eher als objektorientiert zu bezeichnen ist). Die Datensätze werden als 'Objekte' und die Eigenschaften als 'Attribute' definiert. Ein Benutzer zum Beispiel ist ein Objekt im Active Directory, der Name 'Mustermann' ein Attribut dieses Objekts. Die Objekte werden in Containern, auch OUs (Organizational Unit) genannt, abgelegt. Einige Container sind vordefiniert, beliebige weitere Organisationseinheiten können mit Subeinheiten erstellt werden, sprich weitere Unterorganisationseinheiten.
Als objektbasiertes System unterstützt Active Directory die Vererbung von Eigenschaften eines Objektcontainers an untergeordnete Objekte, die auch wieder Container sein können. Welche Objekttypen im Active Directory verfügbar sind, kann man beeinflussen, indem man neue Typen definiert. Das Muster, nach dem man dabei vorzugehen hat, ist das Schema: Es definiert die Objekte und ihre Attribute.
Anders als frühere Windows-Versionen, welche für die Kommunikation NetBIOS verwendeten, ist in Active Directory DNS und TCP/IP integriert. Um voll funktionsfähig zu sein, muss der DNS-Server SRV-Ressourceneinträge unterstützen. Zwar können Windows-2000-Clients nach wie vor mit Hilfe von WINS Server auffinden, aber ohne DNS funktioniert Active Directory nicht.
Active Directory erlaubt es, Netzwerke logisch und hierarchisch mit Hilfe von Objekten aufzubauen. Diese Objekte speichern Informationen über Computer, Benutzer, Dateifreigaben und andere Geräte wie Drucker und Scanner. Jedes Objekt hat Attribute und wird in einer zentralen Datenbank gespeichert, in der viele Millionen Objekte abgelegt werden können.
Active Directory nutzt für die Replikation des Verzeichnisses zwischen den Domänencontrollern eine Multimaster-Replikation. Das hat den Vorteil, dass sich jedes Datenbankreplikat beschreiben lässt und so bei verteilten Implementierungen eine lokale Administration vollständig möglich ist.
Struktur
Die Active-Directory-Struktur ist ein hierarchisches System, welches aus Objekten besteht. Die Objekte lassen sich in drei Kategorien einteilen:
- Ressourcen (z.B. Drucker, Scanner, Kameras)
- Dienste (z.B. E-Mail)
- Benutzer (z.B. Benutzerkonten oder Benutzer und Benutzergruppen)
Mit Hilfe von Active Directory kann der Administrator die Informationen der Objekte organisieren, bereitstellen und überwachen. Den Benutzern des Netzwerkes können Zugriffsbeschränkungen erteilt werden. So darf zum Beispiel nicht jeder Nutzer jede Datei ansehen oder jeden Drucker verwenden.
Die gesamte hierarchische Struktur heißt "Wald" (forest) oder auch Gesamtstruktur; eine Ansammlung aller Objekte, deren Attribute, Regeln und Container in dem Verzeichnis abgelegt werden. Der Wald verwaltet einen oder mehrere transitiv verknüpfte Bäume. Ein Baum verwaltet eine oder mehrere Domänen welche wiederum transitiv in der Hierarchie miteinander verknüpft sind. Domains werden nach den Regeln des DNS-Systems benannt, dem "Namespace" (Namensraum).
Die Objekte in einer Domain können lokal in sogenannte „organisatorische Einheiten“ (organizational units, OUs) gruppiert werden. Durch organisatorische Einheiten wird eine Domain hierarchisch gegliedert, was die Administration von Active Directory vereinfacht. Mit Hilfe von Active Directory ist es möglich, ein Netzwerk ähnlich der realen Struktur des Unternehmens oder seiner räumlichen Verteilung zu gliedern. Organisatorische Einheiten können wiederum Organisatorische Einheiten als Unterobjekte enthalten. Die Gruppenrichtlinien-Einstellungen werden in Gruppenrichtlinien-Objekten gespeichert. Diese sind ebenfalls Domains und Standorten zugeordnet. Die organisatorischen Einheiten sind die unterste Ebene von Active Directory, in der administrative Rechte aufgeteilt werden können.
Die Objekte repräsentieren einzelne Einheiten (z.B. Benutzer, Computer, Drucker, Programme oder Ordnerfreigaben) und deren Attribute. Jedes Objekt hat einen Satz von Attributen, welche abhängig von ihrem Typ definiert sind. Objekte werden eindeutig über ihren Namen identifiziert.
Eine weitere Möglichkeit der Unterteilung ist ein Standort. Dieser stellt eine physikalische Gruppierung eines oder mehrerer logischer IP-Unternetze dar.
Standorte zeichnen sich durch die Verbindung zwischen langsamen Netzwerken (z.B. WAN, VPN) und schnellen Netzwerken (z.B. LAN) aus. Domains können Standorte enthalten und Standorte können Domains beinhalten. Dies ist wichtig für die Kontrolle des Netzwerkverkehrs der durch Replikationsvorgänge entsteht.
Es ist fundamental, die Infrastruktur der Unternehmensinformationen in eine hierarchische Aufteilung in Domains und der Organisationseinheiten sorgfältig zu planen. Hierfür haben sich Aufteilungen hinsichtlich geografischer Orte, Aufgaben oder IT-Rollen bzw. einer Kombination aus diesen Modellen als nützlich erwiesen.
Active Directory ist in drei Teile aufgegliedert: Schema, Konfiguration und Domain. Ein Schema ist eine Schablone für alle Active-Directory-Einträge. Es definiert Objekttypen, ihre Klassen und Attribute als auch ihre Attributsyntax. Die Konfiguration stellt die Struktur des Active-Directory-Waldes und seiner Bäume dar. Die Domain schließlich speichert alle Informationen über die erstellten Objekte und seiner Domain. Die ersten beiden Teile der Active Directory werden mit jedem domain controller repliziert. Es gibt nur einen globalen Katalog, in dem alle Informationen der Domains gespeichert werden. Die Grenze der vollen Domainreplikation stellt die Domain selbst dar.
Die Active-Directory-Datenbank in Windows 2000 benutzt die Jet-Basierende ESE98, welche auf 17 Terabytes und 10 Millionen Objekte pro Domain begrenzt ist. Dies ist ein theoretischer Grenzwert, da nicht mehr als eine Million Objekte pro Domain empfohlen werden. Die Datenbankdatei enthält drei Haupttabellen: die „schema table“ zur Speicherung der Schemata, die „link table“ zur Speicherung der Objekt-Struktur und die „data table“ zur Speicherung der Daten. Die Datenbankdatei heißt „NTDS.DIT“. ESE (extensible storage engine) ordnet die nach einem relationalen Modell abgespeicherten Active-Directory-Daten nach einem vorgegebenen Schema in einem hierarchischen Modell an.
Im Gegensatz zu NT4-Domänen besitzen alle Domänencontroller (DC) eine beschreibbare Kopie der Active-Directory-Datenbank. Bei NT4-Domänen sind Änderungen nur auf dem primary domain controller (PDC) möglich. Die Veränderung eines Attributes auf einem der DCs wird in regelmäßigen Intervallen an alle anderen DCs weitergegeben (repliziert). Dadurch sind alle DCs auf dem selben Stand. Der Ausfall eines DCs ist für die Active Directory Datenbank unerheblich, da keine Informationen verloren gehen. Das Replikationsintervall kann je nach Änderungshäufigkeit auf 15 oder mehr Minuten eingestellt werden.
Namensvergabe
Active Directory unterstützt eine Benennung bzw. den Zugriff über UNC/URL und LDAP-URL-Namen. Intern wird die LDAP-Version X.500 für die Namensstruktur verwendet. Jedes Objekt hat einen vollqualifizierten Namen (distinguished name, DN). Ein Druckobjekt heißt beispielsweise LaserDrucker3 in der organisatorischen Einheit Marketing und der Domain „foo.org“. Der voll qualifizierte Name ist somit „CN=LaserDrucker3,OU=Marketing,DC=foo,DC=org“. „CN“ steht hierbei für „common name“. „DC“ ist die Domain-Objekt-Klasse (domain component), dieser kann aus sehr vielen Teilen bestehen. Die Objekte können auch nach einer anderen Notation bezeichnet werden. Diese zeichnet sich durch eine umgekehrte Reihenfolge der Bezeichner aus, welche durch Schrägstriche voneinander getrennt sind. Das obige Objekt könnte somit auch mit „foo.org/Marketing/LaserDrucker3“ bezeichnet werden. Um Objekte innerhalb der Container anzusprechen, werden relative Namen (relative distinguished names, RDNs) verwendet. Dies wäre für den Laserdrucker „CN=LaserDrucker3“. Jedes Objekt hat einen global eindeutigen Namen (globally unique identifier, GUID). Dieser ist eine nicht veränderbare 128 Bit lange Zeichenkette, die für das Suchen und Replizieren benutzt wird. Weiterhin kann jedes Objekt über die UPN-Notation (user principal name, RFC 822) angesprochen werden, die den Aufbau „Objektname“@„Domainname“ hat.