Active Directory is de eigen implementatie van Microsoft van de LDAP-directory service, gecombineerd met DNS.
De Active Directory databank wordt bijgehouden op één of meerdere Domain Controllers. Een Domain Controller is een Windows-server die een kopie bevat van de Active Directory databank.
In een Windows-netwerk kan men de machines opdelen in domeinen. Alle domain controllers in hetzelfde domein bevatten een kopie van dezelfde Active Directory databank. Al deze kopieën zijn schrijfbaar. Wanneer er een aanpassing gebeurt in de Active Directory databank van een Domain Controller, wordt die wijziging gerepliceerd naar de andere Domain Controllers van het domein.
De gegevens die bijgehouden worden in Active Directory zijn uiteenlopend van aard: gebruikers, computers, printers, netwerkshares, maar ook informatie voor bepaalde applicaties zoals Exchange server. Al die informatie is hiërarchisch gerangschikt in een soort van folder structuur. Op elk niveau, zowel op een “folder” als op een item, kan men beveiliging instellen. Men kan ook het recht om de beveiliging op een bepaald niveau te wijzigen delegeren aan iemand anders. In Active Directory is het bijvoorbeeld mogelijk om aan helpdeskmedewerkers het recht te geven het paswoord te wijzigen van een groep gebruikers.
Wanneer we een domein creëren door een Domain Controller te configureren, wordt er een Active Directory databank aangemaakt. Deze databank is dezelfde op alle Domain Controllers van het domein. Wanneer we een gewone computer lid maken van het domein, wordt die geregistreerd in die databank. Gebruikers in het domein kunnen rechten krijgen om zich aan te melden op elk van die computers.
Wanneer we twee verschillende domeinen hebben, is er in eerste instantie geen mogelijkheid om een gebruiker van het ene domein rechten te geven in het andere domein. Men zegt ook wel eens dat een domein een security boundary vormt. Maar er zijn mogelijkheden om die security boundary te overschrijden. We kunnen namelijk een trust relationship leggen tussen twee domeinen. Wanneer Domain1 Domain2 vertrouwt, heeft Domain1 toegang tot de lijst van gebruikers en groepen van Domain2 en kunnen beheerders van Domain1 de gebruikers of de groepen van Domain2 rechten geven.
De naam “trust” komt van het feit dat de beheerders van Domain1 gedeeltelijk de controle verliezen over wie juist toegang krijgt tot een bepaalde resource. Ze kunnen bijvoorbeeld wel beslissen welke groep van Domain2 leesrechten krijgt in een directory, maar ze hebben geen enkele controle over wie er lid is van die groep. Dat kan alleen beslist worden door de beheerders van Domain2. De beheerders van Domain1 moeten de beheerders van Domain2 dus vertrouwen.
De trustrelationships kunnen manueel gelegd worden tussen twee bestaande domeinen. Maar het kan ook geregeld worden bij de creatie van een domein. Wanneer we een nieuw domein maken en we voegen dat toe aan een bestaande forest van domeinen, ligt er automatisch tussen al die domeinen een trustrelationship in twee richtingen. Er is wel een belangrijker beperking wanneer men een forest gebruikt om trusts te leggen: alle domeinen van een forest moeten dezelfde active directory structuur hebben.
Een forest van domeinen kan eventueel onderverdeeld worden in trees. Alle domeinen in dezelfde tree moeten subdomeinen zijn van dezelfde hoofddomeinnaam. Tussen verschillende trees in een forest zijn er geen regels voor de domeinnamen. Ze moeten natuurlijk wel uniek zijn.
Organisational units worden gebruikt om één domein verder op te delen. Men kan Organisational units vergelijken met de folders op een harde schijf. Wanneer men bestanden bewaard op een harde schijf, zet men die bestanden niet allemaal in de root van de harde schijf. Men maakt folders aan om structuur aan te brengen op die harde schijf zodat gelijkaardige bestanden kunnen worden samen gezet. Bijkomend worden folders ook gebruikt om beveiliging in te stellen op een reeks bestanden. Op een gelijkaardige manier zullen we organisational units gebruiken om de objecten in Active Directory in een hiërarchie te zetten. Een laatste reden om organisational units te definiëren is voor de implementatie van group policies.