# Active Directory

Active Directory (AD) heißt der mit Windows 2000 eingeführte Verzeichnisdienst von Microsoft Windows Server, dessen Kernkomponente auch als Active Directory Domain Services (AD DS) bezeichnet wird.
Bei einem solchen Verzeichnis (englisch directory) handelt es sich um eine Zuordnungsliste wie zum Beispiel bei einem Telefonbuch, das Telefonnummern den jeweiligen Anschlüssen (Besitzern) zuordnet.
Active Directory ermöglicht es, ein Netzwerk entsprechend der realen Struktur des Unternehmens oder seiner räumlichen Verteilung zu gliedern. Dazu verwaltet es verschiedene Objekte in einem Netzwerk wie beispielsweise Benutzer, Gruppen, Computer, Dienste, Server, Dateifreigaben und andere Geräte wie Drucker und Scanner und deren Eigenschaften. Mit Hilfe von Active Directory kann ein 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 Benutzer jede Datei ansehen oder jeden Drucker verwenden.

## Serverrollen

Seit Windows Server 2008 sind unter dem Begriff Active Directory fünf verschiedene Serverrollen zusammengefasst:
* Active Directory Domain Services (Active-Directory-Domain-Verzeichnisdienst, AD DS) ist die aktuelle Version des ursprünglichen Verzeichnisdienstes und der zentrale Punkt der Domain- und Ressourcenverwaltung.
* Active Directory Lightweight Directory Services (Active-Directory-Lightweight-Verzeichnisdienst, ADLDS) ist eine funktional eingeschränkte Version des AD DS, die der Anbindung von Anwendungen oder Diensten, die LDAP-konforme Informationen aus dem Verzeichnis benötigen, dient. Erstmals in Windows Server 2003 implementiert, wurde der Dienst dort als Active Directory Application Mode (ADAM) bezeichnet.
* Active Directory Federation Services (Active-Directory-Verbunddienste, ADFS) dienen der webgestützten Authentifizierung von Benutzern, wenn diese sich in Bereichen außerhalb der AD-DS-Infrastruktur befinden.
* Active Directory Rights Management Services (Active-Directory-Rechteverwaltungsdienste, ADRMS) schützen Ressourcen durch kryptografische Methoden gegen unbefugte Einsicht.
* Active Directory Certificate Services (Active-Directory-Zertifikatsdienste, ADCS) stellen eine Public-Key-Infrastruktur bereit.

## Die vier Hauptkomponenten
### Lightweight Directory Access Protocol (LDAP)

Das LDAP-Protokoll ermöglicht es Computern, Anfragen auf eine einheitliche Weise an das Verzeichnis zu stellen, um beispielsweise Informationen über Benutzer und deren Gruppenzugehörigkeit zu erhalten.

### Kerberos-Protokoll

Kerberos ist ein Protokoll, mit welchem Benutzer auf einheitliche Weise zentral authentifiziert werden. Das ermöglicht ihnen dann den Zugriff auf verschiedene Server und Dienste innerhalb des Active Directory, ohne sich jeweils neu anmelden zu müssen (Single Sign-on).

### Server Message Block (SMB)

Das SMB-Protokoll ermöglicht den Zugriff auf Dateien, die sich auf einem Server im Netzwerk befinden. Damit kann Active Directory z. B. Gruppenrichtlinien und Anmeldeskripte für Client-Computer verfügbar machen.

### Domain Name System (DNS)

DNS dient zur Übersetzung von Computernamen in IP-Adressen. Damit ist es möglich, jeden Computer innerhalb des Active Directory per Namen zu erreichen. Mittels SRV-Ressourceneinträgen werden ferner die Dienste des Active Directory den Client-Computern bekannt gemacht.

## Aufbau
### Bestandteile

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 sowohl Objekttypen, ihre Klassen und Attribute als auch ihre Attributsyntax. Welche Objekttypen in Active Directory verfügbar sind, lässt sich durch die Definition neuer Typen beeinflussen. Das dafür zugrundeliegende Muster ist das „Schema“, das die Objekte und ihre Attribute definiert.
* Die Konfiguration beschreibt die Active-Directory-Gesamtstruktur und deren Bäume.
* Die Domain enthält schließlich alle Informationen, die sie selbst und die in ihr erstellten Objekte beschreiben.
Die ersten beiden Teile von Active Directory werden zwischen allen Domain Controllern der Gesamtstruktur repliziert, während die Domain-spezifischen Informationen grundsätzlich nur innerhalb der jeweiligen Domain, also auf ihren jeweiligen Domain Controllern, verfügbar sind. Deshalb existiert in jeder Domain zusätzlich ein sogenannter Globaler Katalog. Er repräsentiert alle Informationen der eigenen Domain und enthält zusätzlich wichtige Teilinformationen der anderen Domain der Gesamtstruktur und ermöglicht damit z. B. Domain-übergreifende Suchoperationen.

### Datenbank

Active Directory verwendet zur Speicherung der Informationen über die Netzwerkobjekte eine Jet (Blue)-Datenbank, die Microsoft auch für den Exchange Server einsetzt. Sie ist relational, transaktionsorientiert und benutzt ein „Write-Ahead-Logging“. Die Active-Directory-Datenbank ist auf 16 Terabytes begrenzt und jeder Domain Controller kann bis zu 2 Milliarden Objekte anlegen.
Die Datenbankdatei „NTDS.DIT“ 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.
ESE (extensible storage engine) ordnet die nach einem relationalen Modell abgespeicherten Active-Directory-Daten nach einem vorgegebenen Schema in einem hierarchischen Modell an.
Unter Windows 2000 benutzt Active Directory die Jet-basierende ESE98-Datenbank.

### Objekte

Im Gegensatz zum objektorientierten Verzeichnissystem eDirectory von NetIQ ist Active Directory eher als objektbasiert – und hierarchisch – zu bezeichnen.
Die Datensätze in der Datenbank werden in Active Directory als „Objekte“ und deren Eigenschaften als „Attribute“ definiert. Die Attribute sind abhängig von ihrem Typ definiert. Objekte werden eindeutig über ihren Namen identifiziert.
Die Gruppenrichtlinien-Einstellungen werden in Gruppenrichtlinien-Objekten gespeichert. Diese sind ebenfalls Domains und Standorten zugeordnet.

#### Objektkategorien

Objekte lassen sich in zwei Haupt-Kategorien einteilen:
* Konten, wie zum Beispiel Benutzer-, Gruppen- und Computerkonten
* Ressourcen, wie zum Beispiel Datei- und Druckerfreigaben

#### Ablage in Containern (Organisationseinheiten)

Die möglicherweise bis zu vielen Millionen Objekte werden in Containern (Organisationseinheiten), auch OUs (Organizational Unit) genannt, abgelegt. Einige Container sind vordefiniert, beliebige weitere Organisationseinheiten können mit Subeinheiten (Unterorganisationseinheiten) erstellt werden. Als objektbasiertes System unterstützt Active Directory die Vererbung von Eigenschaften eines Objektcontainers an untergeordnete Objekte, die auch wieder Container sein können. Dadurch erlaubt es Active Directory, Netzwerke logisch und hierarchisch aufzubauen.

### Hierarchie
#### Gesamtstruktur (Forest)

Der Verbund mehrerer zusammengehöriger Domains heißt im englischen Original „forest“, deutsch „Gesamtstruktur“. Die wichtigsten Informationen aller enthaltenen Domains sind zentral im Globalen Katalog abrufbar, außerdem benutzen alle Domains dasselbe Verzeichnis-Schema. Die Verwendung von Sicherheitsinformationen (z. B. Nutzer-Rechte/-Gruppen-Zuordnungen) sowie Schema-Erweiterungen sind so Domain-übergreifend möglich. Die Gesamtstruktur kann verschiedene Bäume (trees) enthalten, das sind jeweils Domains, die im selben DNS-Namensraum liegen (z. B. buchhaltung.meinefirma.de und meinefirma.de). Auch eine einzelne Domain bildet schon eine Gesamtstruktur, die später um weitere Domains ergänzt werden kann.

#### Organisationseinheiten

Eine Organisationseinheit (OU) ist ein Containerobjekt, das zum Gruppieren anderer Objekte im AD dient. Eine OU kann neben Objekten auch andere OUs enthalten. Die frei definierbare Hierarchie der OUs vereinfacht die Administration von Active Directory. In der Regel richtet sie sich nach den Netzwerkstrukturen (Netzwerkverwaltungsmodell) oder nach der Organisationsstruktur des Unternehmens. Die OUs sind die unterste Ebene von Active Directory, in der administrative Rechte aufgeteilt werden können.

#### Standorte

Eine Möglichkeit der Unterteilung sind Standorte. Diese stellen eine räumliche Gliederung der IP-Unternetze innerhalb der Gesamt-Topologie dar.
Die schnellen Netzwerke (LAN) der Standorte sind meistens durch langsamere Netzwerke (WAN) untereinander verbunden. Die Standort-Bildung ist deshalb wichtig für die Kontrolle des Netzwerkverkehrs, der durch Replikationsvorgänge entsteht. Domains können Standorte enthalten, und Standorte können Domains beinhalten.
Es ist fundamental, die Infrastruktur der Unternehmensinformationen in eine hierarchische Aufteilung in Domains und Organisationseinheiten sorgfältig zu planen. Hierfür haben sich Aufteilungen hinsichtlich geografischer Orte, Aufgaben oder IT-Rollen oder einer Kombination aus diesen Modellen als nützlich erwiesen.

## Domain Controller und Replikation
### Windows NT

Unter Windows NT, das noch eine Nutzerdatenbank ohne hierarchische Strukturen enthielt, gab es pro Domain immer einen ausgezeichneten Controller, den primären Domain Controller (PDC), der Änderungen an dieser Nutzer- und Computerdatenbank (SAM) ausführen durfte. Alle anderen Domain Controller replizierten diese und dienten als Nur-Lese-Sicherungskopien, um im Bedarfsfall zu einem PDC hochgestuft werden zu können.

### Ab Windows 2000: Multimaster-Replikation

Dagegen nutzt Active Directory für die Replikation des Verzeichnisses zwischen den Domain Controllern eine sogenannte Multimaster-Replikation. Das hat den Vorteil, dass sich jedes Replikat beschreiben und synchronisieren lässt. Somit ist bei verteilten Implementierungen eine lokale Administration vollständig möglich. Im Gegensatz zu Windows-NT-Domains besitzen ab Windows 2000 alle Domain Controller (DC) eine beschreibbare Kopie der Active-Directory-Datenbank. 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 demselben 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. Windows 2000 Server repliziert das AD standardmäßig nach spätestens 5 Minuten, Windows Server 2003 repliziert es standardmäßig nach spätestens 15 Sekunden. Da eine Replikation über höchstens 3 Hops geht, erhält man je nach verwendeter Serverversion 15 Minuten bzw. 45 Sekunden als Replikationsintervall für eine Domain.

## Namensvergabe

Active Directory unterstützt eine Benennung und 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), die aus sehr vielen Teilen bestehen kann. Die Objekte können auch nach der UNC/URL-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 neben seinem global eindeutigen Namen eine ebenfalls global eindeutige 128 Bit lange Nummer (globally unique identifier, GUID). Diese wird üblicherweise als Zeichenfolge dargestellt und ändert sich auch beim Umbenennen des Objekts nicht. Weiterhin kann jedes Benutzer- und Computerobjekt auch eindeutig über seinen zugeordneten UPN (User Principal Name) angesprochen werden, der den Aufbau „Objektname“@„Domainname“ hat.

## Sicherheitsmechanismen

Das AD bildet das Herzstück der Verwaltung von Objekten in zentral administrierten Windows-Umgebungen.
Dieses System erfordert besonderen Schutz vor Angriffen. Zu den empfohlenen Maßnahmen gehören beispielsweise:
* Beachtung grundlegender Sicherheitseinstellungen
* keine Installation von zusätzlichen Diensten auf Domain Controllern
* Nutzung der aktuellen Domain- und Gesamtstrukturfunktionsebene
* Verschlüsselung von Active Directory-Laufwerke mit Bitlocker
* Local Administrator Password Solution (LAPS).

### Windows LAPS

Windows LAPS (kurz LAPS, en. Local Administrator Password Solution, Lokales-Administratorkennwort-Lösung) ist ein von Microsoft entwickeltes Windows-Feature zum Schutz lokaler Kennwörter von in das Active Directory integrierten Geräten. Eine erste Version von LAPS wurde 2015 veröffentlicht. Die lokalen Passwörter sind zufällig generiert und werden in regelmäßigen Intervallen automatisch geändert.
Häufig wird in größeren Umgebungen für alle Geräte dasselbe lokale Passwort vergeben. LAPS ermöglicht es, auf jedem System ein individuelles Passwort zu hinterlegen, wodurch es Angreifer schwerer haben eine ganze Umgebung zu übernehmen.
Seit April 2023 ist LAPS erstmals Systemkomponente. Die Verwaltung erfolgt per Gruppenrichtlinienobjekt (GPO).

## Alternativen zu Windows Server

Es existieren neben Active Directory weitere Verzeichnisdienste, die zwar LDAP und Kerberos implementieren, jedoch nicht AD-kompatibel sind. Einige Software-Produkte emulieren jedoch auch ein Active Directory. Damit können Windows- und andere Clients ohne zusätzlich aufgebrachte Software einer Domain beitreten und einen Großteil der Möglichkeiten eines Active Directory, wie z. B. die zentrale Authentifizierung und Verwaltung, nutzen, ohne dass Windows Server eingesetzt wird.

### Samba

Neben Windows Server kann auch die freie Software Samba für Linux- und Unix-Systeme einen weitgehend Active-Directory-kompatiblen Verzeichnisdienst zur Verfügung stellen. Die aktuelle Version 4 kann damit einen Windows-Server in vielen Fällen ersetzen. Dies wurde nicht zuletzt durch die Unterstützung, die das Samba-Projekt von Microsoft direkt erhalten hatte, möglich.

### eDirectory

Ähnliche Funktionen wie Active Directory bietet das von Novell entwickelte NetIQ eDirectory. Es ist für Windows sowie für Linux verfügbar und erlaubt anders als Active Directory auch die Verwaltung einer inhomogenen IT-Infrastruktur. Mittels des Aufsatzes Domain Services for Windows kann eDirectory ein Active Directory emulieren.