Az Active Directory, röviden AD a Microsoft egyes hálózati szolgáltatásainak gyűjtőneve, ezek: X.500-alapú, LDAPv3 protokollal lekérdezhető, elsősorban Microsoft Windows-környezetben használatos címtárszolgáltatás; Kerberos protokoll-alapú autentikáció; DNS-alapú névszolgáltatás és egyéb hálózati információk.

Az Active Directory címtár az adatbázisból és az azt futtató Active Directory szolgáltatásból áll. Fő célja a Windowst futtató számítógépek részére autentikációs és autorizációs szolgáltatások nyújtása, lehetővé téve a hálózat minden publikált erőforrásának (fájlok, megosztások, perifériák, kapcsolatok, adatbázisok, felhasználók, csoportok stb.) központosított adminisztrálását – vagy éppen a rendszergazdai jogosultságok delegálásával a decentralizált felügyeletét. Számos különböző erőforráshoz (megosztott mappák, nyomtatók, levelezés stb.) egyetlen felhasználónév/jelszó páros megadásával biztosít hozzáférést (Single Sign On, SSO). Lehetőséget nyújt a rendszergazdák számára házirendek kiosztására, szoftverek és szoftverfrissítések telepítésére a szervezeten belül. Az Active Directory az információkat és beállításokat egy központi adatbázisban tárolja, a tartományvezérlő számítógépe(ke)n. Ennek az adatbázisnak a mérete egy kisvállalat néhány száz objektumától egy több ezer szervert üzemeltető nemzetközi vállalat sok millió objektumáig terjedhet. Az Active Directory szükséges néhány Windows-összetevő, mint például az Exchange, az RRAS, az ISA Server vagy a Certificate Services működéséhez.

Egy Active Directory-címtár legmagasabb szintje az erdő (forest), ami egy vagy több bizalmi kapcsolatokkal (trust) összekötött tartományt (domain) magába foglaló egy vagy több fa (tree) összessége. A tartományokat DNS-beli névterük azonosítja. A címtár objektumait a Directory Information Tree (címtárinformációs fa, DIT) adatbázisa tárolja, ami három partícióra bomlik, ezek: az objektumok tulajdonságait leíró sémapartíció (schema partition), az erdő szerkezetét (tartományokat, fákat, helyeket) leíró konfigurációs partíció (configuration partition) és a tartomány objektumait tartalmazó tartományi partíció (domain partition). Ezeken kívül létezhetnek alkalmazáspartíciók (application partition) is.

Az Active Directory előzetes változatai 1999-ben jelentek meg, a végleges változat a Windows 2000 szerverváltozatával látott napvilágot. A Windows Server 2003-ban átdolgozott verzió jelent meg kiterjesztett szolgáltatáskészlettel és javított adminisztrációs lehetőségekkel. További előrelépések történtek a Windows Server 2003 R2 és a Windows Server 2008-as változatokban, ahol az Active Directory Domain Services nevet kapta.

Az Active Directoryt korábbi Microsoft dokumentumokban NTDS-nek (NT Directory Service) nevezték, egyes AD-segédprogramokban (például ntdsutil) még fellelhető ez az elnevezés.

Gyakori tévedés, hogy az Active Directory szoftverterjesztésre használható. Ez nem pontos, a szoftverterjesztést egy másik szolgáltatás nyújtja, ami az LDAP gyártóspecifikus séma-attribútumait használja fel. Tehát az AD nem automatizálja a szoftverterjesztést, csak egy mechanizmust biztosít, amit más szolgáltatások erre használhatnak.

Struktúra Objektumok Az Active Directory objektumokból épül fel. Ezek három fő kategória egyikébe tartoznak: erőforrások (például nyomtatók), szolgáltatások (például e-mail) és felhasználók (felhasználói fiókok, csoportok). Az AD információkat tárol ezekről az objektumokról, rendszerezi őket, szabályozza a hozzáférést és biztonsági beállításokat tárol; ezzel egyben központosítva a hálózatot.

Minden objektum egyetlen entitást reprezentál – legyen az felhasználó, számítógép, nyomtató vagy egy csoport – attribútumaival együtt. Bizonyos objektumok más objektumokat tartalmazó konténerként is működhetnek. Egy objektumot egyértelműen azonosít megkülönböztetett neve (dn, distinguished name), ami tulajdonképpen az objektum neve és a fában elfoglalt helye együttesen. Például a Fabrikam.com tartomány felhasználóit tartalmazó szervezeti egység megkülönböztetett neve: "CN=Users, DC=Fabrikam, DC=com". Egy objektum megkülönböztetett neve változhat az objektum áthelyezésével, átnevezésével. Egy másik egyértelmű azonosító, ami viszont az objektum teljes élettartama alatt változatlan marad, az objectGUID attribútuma. Ez egy 128 bites, erdő-szinten garantáltan egyedi azonosító. Azt, hogy milyen típusú objektumok lehetnek az AD-ben, és ezek az objektumok hogyan viselkedhetnek, milyen információkat (attribútumokat vagy tulajdonságokat) tartalmazhatnak, a séma határozza meg.

Az AD-ban lévő sémaobjektumok határozzák meg az AD objektumainak tulajdonságait. Fontos szerepük miatt – az AD struktúráját alkotják – megváltoztatásuk vagy törlésük komoly következményekkel járhat, ezért csak szigorúan meghatározott szabályok alapján lehet változtatni rajtuk. Egy sémaobjektum megváltoztatása automatikusan továbbterjed az egész Active Directoryban, a létrehozott objektumot csak deaktiválni lehet – törölni nem. A séma megváltoztatása (tipikusan: bővítése) ezek miatt általában komoly tervezést igényel.

A Windows Server 2008-ban már lehetőség volt egyes objektumokat védeni a véletlen törlés ellen. A Windows Server 2008 R2-ben bevezetett újdonság az Active Directory Lomtár, ami képes megőrizni az objektumok összes csatolt és nem csatolt értékű attribútumát, és az objektumokat ugyanabba a konzisztens logikai állapotba visszaállítani, mint amelyben a törlés előtt voltak (pl. csoporttagság, kapcsolódó hozzáférési jogok visszaállítása). A korábban hozzáférhető eszközökkel a logikailag törölt AD-objektumok nem voltak teljes értékűen visszaállíthatók. Az AD Lomtár csak Windows Server 2008 R2 erdő működési szinten hozzáférhető, de alapértelmezés szerint ott sincs engedélyezve.

Helyek Az Active Directory támogatja a helyek (Site) létrehozását, ami nem logikai, hanem fizikai, méghozzá IP subnet (alhálózat) szerinti felosztást takar. A helyek egymás között jó hálózati kapcsolattal rendelkező alhálózatok halmazaiként határozhatók meg. A helyek segítségével el lehet különíteni az alacsony (például WAN vagy VPN) és a magas sávszélességű kapcsolattal összekötött (LAN) helyszíneket. A helyek kialakítása független a tartományi és a szervezeti egység szerinti hierarchiától, és erdő-szinten egységes. A helyek szerepe a replikáció hálózati forgalmának szabályozásában van, továbbá abban, hogy a felhasználók a hozzájuk lehető legközelebb eső tartományvezérlőhöz csatlakozzanak, illetve más szolgáltatások esetén is a lokális példányt használják. A helyek összeköthetők (linkelhetők), a linkekhez költség rendelhető, ami a hálózati kapcsolat sebességét, megbízhatóságát vagy más fizikai jellemzőjét reprezentálja. Más szolgáltatások is „helytudatosak”, ilyenek a DFS-erőforrások, illetve a Microsoft Exchange 2007+ a levelek útválasztására is felhasználja a helytopológiát. A csoportházirendek szintén alkalmazhatók a helyek szintjén.

Erdők, fák, tartományok és partíciók

Az Active Directory objektumait a Directory Information Tree (címtárinformációs fa, DIT) adatbázisa tárolja (a Windows NT tartományban a „címtár” jellegű adatok még a registryben kaptak helyet), ebben egy többszintű keretrendszer foglal helyet. A struktúra legmagasabb szintjén foglal helyet az erdő (forest) – az AD minden objektumának, azok attribútumainak és szabályainak (az attribútumok szintaxisa) gyűjteménye. Az azonos erdőben található tartományvezérlőkről elmondható, hogy közös sémán és konfigurációs partíción osztoznak, és a globális katalógusokról azonos információkat érnek el. Az erdőt egy vagy több, kétirányú és tranzitívTehát ha A tartomány bízik B tartományban, B pedig bízik C-ben, akkor A automatikusan bízik C-ben. bizalmi kapcsolat (trust) által összekötött fa (tree) alkotja. Egy-egy fában egy vagy több, konfigurációs és sémapartíciójukban megegyező tartomány (domain) lehet, amik egy tartományhierarchiát alkothatnak, melyben a szülő- és a gyermektartományok között automatikusan létrejövő, tranzitív kétirányú bizalmi kapcsolat van. Az azonos szintű tartományok között explicit bizalmi kapcsolatokat lehet létrehozni, ha szükséges. A tartományokat DNS-beli névterük azonosítja, és ez a tartományi hierarchiát is tükrözi (például a child.parent.root.com tartomány szülője a parent.root.com).

A tartományban lévő objektumok szervezeti egységekbe (Organizational Unit, OU) rendezhetők. Az OU-k adnak a tartománynak az adminisztrációt megkönnyítő hierarchiát, segítségükkel az Active Directory struktúrájára leképezhető a vállalat szervezeti felépítése vagy földrajzi elhelyezkedése. Egy OU tartalmazhat egy vagy több más OU-t is (ilyen értelemben a tartomány is tekinthető OU-nak), a többszörös egymásba ágyazás is megengedett. A Microsoft azt javasolja, hogy az Active Directoryt minél kevesebb tartományra bontsuk szét, és inkább szervezeti egységek létrehozásával tagoljuk a címtárat. A csoportházirendek (amik szintén AD objektumok, csoportházirend-objektum – Group Policy Object, röviden GPO néven) általában az OU szintjén fejtik ki hatásukat, bár tartomány és hely (site) szinten is alkalmazhatók. Többnyire az OU szintjén szokás a rendszergazdai jogosultságokat delegálni, bár a delegáció akár egyedi objektumok, sőt attribútumok szintjén is beállítható.

A vállalat informatikai infrastruktúrájának felosztása tartományok és szervezeti egységek hierarchiájára kulcsfontosságú tervezési lépés. A gyakori felosztási modellek közé tartozik az üzleti egységeket, a földrajzi elhelyezkedést, az informatikai szolgáltatási igényeket vagy az objektumtípusokat követő felosztás. Ezeket a modelleket gyakran együttesen alkalmazzák. A szervezeti egységek kialakításakor elsősorban a rendszergazdai jogok delegációját és a csoportházirendek alkalmazását érdemes szem előtt tartani. Bár a szervezeti egységek és a tartományok adminisztratív határvonalat képeznek, az egyetlen valódi biztonsági határt maga az erdő alkotja: az AD kialakítása szükségessé teszi, hogy minden tartományi rendszergazda megbízható legyen az egész vállalat (erdő) szintjén is.

Fizikailag az Active Directory adatai egy vagy több egyenrangú tartományvezérlőn (domain controller, DC) tárolódnak, szemben a Windows NT PDC/BDC (Primary/Backup DC) modelljével. Minden tartományvezérlőn megtalálható az Active Directory egy kópiája; általában valamelyik DC kópiájának változásai multi-master (több főkiszolgálós) replikációval szinkronizálódnak a többi DC-re (szemben például a sémaváltozások single-master replikációjával). Ez azt jelenti, hogy nincsen alá-fölérendeltségi viszony a replikációs partnerek között, hanem egy változtatásból eredő replikációs folyamatot – amely végighalad az adott tartomány tartományvezérlőin – bármelyik tartományvezérlő kezdeményezhet. Ütközés esetén a későbbi (pontosabban: magasabb frissítési sorszámmal, azaz Update Sequence Numberrel, USN-nel rendelkező) változás az erősebb. Ezt a helyzetet bonyolítja, hogy a Windows Server 2008-ban bevezetésre került az írásvédett tartományvezérlő (Read-Only Domain Controller, RODC) fogalma, melynél a replikáció csak „lefelé”, a központban található, írható tartományvezérlőtől a telephelyi RODC kiszolgáló felé történik. A tartomány részeként működő, de nem tartományvezérlő kiszolgálókat tartományi szervernek vagy tagkiszolgálónak (Member Server) nevezik.

Az Active Directory adatbázisa, a Directory Information Tree (címtárinformációs fa, DIT) az alábbi három tárterületre vagy partícióra bomlik (ezek a microsoftos terminológiában elnevezési környezet vagy névkörnyezet – Naming Context névre is hallgatnak):

Sémapartíció (schema partition): az egész erdő számára meghatározza az objektumosztályokat: az objektumok létrehozásának és módosításának a szabályait, az objektumok lehetséges tulajdonságait (attribútumait). Az erdő minden tartományvezérlőjére replikálódik, ezért ún. vállalati partíció (enterprise partition). Helye: cn=configuration,dc=forestRootDomain.TechNet: Directory Partitions