# Active Directory

Active Directory (AD) is een eigen implementatie door Microsoft van de directoryservice LDAP in combinatie met DNS en Kerberos voor het gebruik in Windows-omgevingen vanaf Windows 2000.
Active Directory staat beheerders toe om het beleid (rechten en instellingen) in het netwerk van een organisatie te beheren. Ook het automatisch installeren van software en patches behoort tot de mogelijkheden. Active Directory slaat instellingen in relatie tot een object centraal op in een database. Een AD-netwerk kan variëren van een netwerk van een paar honderd tot miljoenen objecten.
Een Active Directory bestaat uit:
* Forests
* Domein(en)
* Sites
* Organizational Units (OU)
Active Directory werd geïntroduceerd met Windows 2000 Server. De komst van Windows 2003 Server markeerde een nieuwe versie van Active Directory.

## Problemen in Windows NT 4.0

De komst van Active Directory loste een aantal belangrijke problemen uit de wereld van Windows NT 4.0 op. Zo was het aantal objecten per domein beperkt tot 64.000, maar in de praktijk was dit aantal bij lange na niet haalbaar. Het gebruikte loginprotocol NTLM voldeed niet meer aan de eisen van de tijd. Het beheren van meerdere domeinen en vooral de relaties ertussen (trust relations) was zeer complex. De domeindatabase van Windows NT 4.0 kon maar een paar soorten objecten bevatten (gebruikers, computers, lokale en globale groepen). Alle gebruikte protocollen om deze "directory" te benaderen waren niet-standaard. De replicatie binnen een domein over meerdere locaties kostte bovendien bijzonder veel bandbreedte in een tijd dat WAN-verbindingen nog buitengewoon duur waren.
Active Directory loste dit met een aantal maatregelen op. LDAP, DNS en Kerberos (reeds bestaande protocollen) werden geïntroduceerd als standaardprotocollen. Er werd overgestapt op een nieuw type database waarin meer objecten konden worden gehuisvest. Ook het schema werd uitbreidbaar, wat betekende dat er ook nieuwe attributen aan bestaande objecten en zelfs nieuwe soorten objecten toegevoegd konden worden. De inzet van een forest loste in één keer alle problemen met trust relations tussen domeinen op, terwijl het gebruik van sites de replicatie tussen verschillende locaties verbeterde.

## Onderdelen
### Domeinen

Aan de basis van Active Directory staan domeinen, zoals deze ook in Windows NT 4.0 al bestonden. Waarschijnlijk heeft Microsoft besloten dit concept door te zetten om achterwaartse compatibiliteit met eerdere Windows-versies niet in gevaar te brengen.
Net als in Windows NT zijn domeinen de replicatiegrenzen van (volledige) objecten. Er geldt ook dat de naam van een object (zoals een gebruikersnaam of een computernaam) uniek moet zijn in het hele domein, ongeacht de plek in de structuur van Organizational Units.
Er zijn echter belangrijke verbeteringen doorgevoerd in het domein. Het aantal mogelijke objecten binnen een domein werd vergroot van 64.000 tot vele miljoenen. Het aantal domeinen in een netwerk kan daarmee fors worden teruggebracht ten opzichte van een netwerk dat gebaseerd is op Windows NT.
Een domeindatabase is ook niet beperkt tot de soorten objecten die er standaard al in zitten. Het is mogelijk om er op een later tijdstip nieuwe soorten objecten aan toe te voegen of bestaande objecten (bv. gebruikers) uit te breiden met extra attributen. Microsoft Exchange 2000 en hoger maken grif gebruik van die mogelijkheid door bv. user-objecten uit te breiden met attributen die vertellen welke e-mailadressen ze hebben en waar hun mailbox te vinden is. (Overigens moet zo'n schema-uitbreiding gedaan worden voor alle domeinen in het forest.)
Objecten kunnen worden onderverdeeld in organizational units (OU's), waardoor zij overzichtelijker opgeslagen worden. Tevens biedt dat de mogelijkheid het beheer over die objecten geheel of gedeeltelijk te delegeren naar andere beheerders. Ten slotte bieden OU's de mogelijkheid Group Policy's flexibel in te zetten.
Een belangrijk verschil met Windows NT 4.0 is de multi-master-replicatie. Dit laatste vermindert het belang van de PDC omdat wijzigingen in objecten nu in iedere domeincontroller gedaan kunnen worden, waarna ze gerepliceerd kunnen worden naar de andere domeincontrollers.
Ieder domein heeft minimaal 1 domeincontroller, een domeincontroller kan maximaal één domeindatabase bevatten. Wel bestaan er domeincontrollers die een deelverzameling van alle objecten uit alle andere domeinen bevatten. Zo'n domeincontroller heet een Global Catalog. De Global Catalog is noodzakelijk voor alle loginverkeer.

### Domain Name System

Omdat Windows Internet Naming System (WINS) zijn beperkingen had, wordt in Active Directory het al bestaande protocol DNS gebruikt om computernamen in IP-adressen om te zetten. De keuze voor DNS betekende daarnaast een definitieve breuk met de netwerkprotocollen IPX/SPX en NetBEUI. TCP/IP, toch al de facto standaard in netwerkland, is noodzakelijk voor Active Directory.
De naamgeving voor domeinen in Active Directory werd daardoor domein.nl, maar ook namen als sub.domein.nl, sub2.domein.nl, domein.be of sub.sub.domein.nl zijn mogelijk.
Voor achterwaartse compatibiliteit wordt NetBIOS nog wel ondersteund.

### Forests

Forests zijn het geheel van domeinen. Alle domeinen binnen een forest vertrouwen elkaar direct of indirect. Alle domeinen in een forest kunnen dezelfde soort objecten huisvesten (ze hebben hetzelfde schema). De namen van domeinen worden allemaal bepaald volgens het domain name system.
Begonnen wordt met een root-domein. Dit kan iedere willekeurige naam hebben, maar gebruikelijk is iets als domain.local.

### Schema

Het schema definieert welke soorten objecten er opgenomen kunnen worden in de domeindatabases en welke attributen er in ieder object zitten. Waren er in NT4.0 maar vier soorten objecten mogelijk (gebruikers, lokale en globale groepen en computers), bij Active Directory werden dat er direct enkele tientallen. Voorbeelden van nieuwe objecten zijn Contacts, Group Policy Objects, Sites, Site Links, Printers en natuurlijk Organizational Units.
Bij de installatie van Exchange 2000 of 2003 of ISA Server Enterprise Edition wordt het schema verder uitgebreid. Zo worden er aan de User-objecten attributen toegevoegd die vastleggen op welke Exchange Server zich de mailbox bevindt en wat de e-mailaliassen zijn.

### Sites

Om de hoeveelheid replicatie- en loginverkeer over het WAN te verminderen kunnen sites gedefinieerd worden. Eenvoudig gezegd is een site een LAN, maar het kunnen ook meerdere LAN's zijn die onderling met snelle verbindingen gekoppeld zijn. Tussen sites liggen altijd trage of dure lijnen. De site wordt gedefinieerd door een of meer IP-subnetten. Een client die inlogt, zal altijd op zoek gaan naar een domeincontroller in de eigen site. Daardoor kan het loginverkeer (authenticatie, uitdelen van group policy's) binnen de eigen site blijven en blijven de WAN-verbindingen vrij.
Domeincontrollers binnen een site repliceren onderling. Voor het replicatieverkeer naar een andere site is steeds één domeincontroller verantwoordelijk, in tegenstelling tot de back-updomeincontrollers in Windows NT 4.0. Daardoor hoeft de informatie uit andere sites slechts eenmaal over de WAN-verbinding.
Ook DFS-clients maken gebruik van sites. Een DFS-client zal altijd op zoek gaan naar een replica in de eigen site of een naburige site.

## Windows Server 2003

De komst van Windows Server 2003 bracht een aantal verbeteringen in Active Directory ten opzichte van Windows 2000.
Een belangrijke verbetering was het feit dat meerdere wijzigingen op verschillende domeincontrollers op een zogenaamde multivalue attribute nu correct gerepliceerd werden. Daardoor werd het mogelijk dat verschillende beheerders op verschillende domeincontrollers gelijktijdig de lidmaatschappen van een groep kon aanpassen (gebruikers toevoegen en verwijderen). In Windows 2000 werd het multivalue-attribute "Members" als één geheel gerepliceerd, waardoor de wijziging van een van beide beheerders weggerepliceerd werd. Met ingang van Windows Server 2003 werd het mogelijk om ook de losse onderdelen van een multivalue-attribute gerepliceerd konden worden, waardoor beide beheerders hun wijzigingen ook na replicatie konden terugzien.

## Compatibiliteit met Unix en Linux

Aangezien Microsoft de technologie voor Active Directory heeft ontwikkeld, was er een tijdlang enkel software beschikbaar voor Windows. Samba is een reverse-engineered opensource-implementatie van Active Directory voor zowel Linux als Unix. Hierdoor kunnen ook Linux- en Unix-machines opgenomen worden in een Windows-netwerk met Active Directory. Bestanden uitwisselen tussen deze besturingssystemen behoort zo ook tot de mogelijkheden. Sinds Samba-versie 4 is het zelfs mogelijk om de Active Directory-functionaliteit grotendeels uit te laten voeren door een Linux-/Unix-server. Het Samba-team werkt actief samen met Microsoft en besteedt een groot deel van de tijd met het testen van hun implementatie tegen Microsofts testsuites. Zodoende wordt ook veilig gesteld dat de software slaagt voor Microsoft-tests voor protocollen zoals Netlogon, LSA en LDAP. Samba 4 heeft echter ook nog wel wat beperkingen. Zo werkt DFS-replicatie, dus Sysvol/Netlogon-replicatie, nog niet. (status medio 2013)