Qualsiasi controller di dominio autorevole (DC) in Active Directory (AD) può eseguire la creazione, l'aggiornamento e la cancellazione degli oggetti. Questo è possibile perché ogni DC (tranne quelli di sola lettura) mantiene una copia scrivibile della partizione del proprio dominio. Una volta che una modifica viene applicata, essa viene automaticamente comunicata agli altri DC attraverso un processo chiamato replica multi-master. Questo comportamento consente alla maggior parte delle operazioni di essere elaborate in modo affidabile da più controller di dominio fornendo alti livelli di ridondanza, disponibilità e accessibilità in Active Directory.
Tuttavia ci sono alcune operazioni sensibili la cui esecuzione è limitata ad uno specifico controller di dominio, in questi casi Active Directory indirizza tali operazioni a server con una serie speciali di ruoli. Microsoft chiama tali ruoli "ruoli operativi" ma sono più comunemente noti con il loro nome originale: ruoli FSMO (Flexible Single Master Operator).
In Active Directory sono presenti 5 ruoli FSMO assegnati a uno o più controller di dominio:
- Schema Master
- Domain Naming Master
- Infrastructure Master
- Relative ID (RID) Master
- PDC Emulator
Schema Master
Schema Master (o Master dello schema) è un ruolo FSMO di livello enterprise. In una foresta Active Directory esiste un solo Schema Master. Il Domain Controller in Active Directory che ricopre il ruolo di Schema Master è l'unico DC, all'interno della foresta, che contiene una partizione di schema scrivibile e controlla tutti gli aggiornamenti e le modifiche dello schema. Di conseguenza per aggiornare lo schema di una foresta, è necessario avere accesso allo Schema Master. Esempi di azioni che aggiornano lo schema sono l'innalzamento del livello funzionale della foresta e l'aggiornamento del sistema operativo di un DC a una versione superiore a quella presente nella foresta.
Se il Domain Controller con il ruolo di Schema Master dovesse andare offline, l'impatto immediato sarà minimo o nullo. Infatti, a meno che non siano necessarie modifiche allo schema, il ruolo può rimanere offline senza effetti rilevanti. Se il Domain Controller con il ruolo di Schema Master non può essere riportato online è possibile trasferire il ruolo ad altro Domain Controller.
Domain Naming Master
Domain Naming Master (Master per la denominazione dei domini) è un ruolo FSMO di livello enterprise. Nell'intera foresta può essere presente un solo master per la denominazione dei domini. Il controller di dominio master per la denominazione dei domini è l'unico controller di dominio, in una foresta Active Directory, in grado di aggiungere e rimuovere domini nella foresta. Nel caso in cui il Domain Controller che ricopre tale ruolo dovesse andare offline, l'impatto operativo sarebbe minimo o nullo, poiché l'aggiunta e la rimozione di domini e partizioni sono operazioni eseguite di rado e sono raramente critiche dal punto di vista temporale.
Infrastructure Master
L'Infrastructure Master (Master dell'infrastruttura) è un ruolo a livello di dominio; in ogni dominio può essere presente un solo controller di dominio che funge da master dell'infrastruttura. Il master dell'infrastruttura sincronizza gli oggetti con i server del catalogo globale (global catalog) ed è responsabile dell'aggiornamento dei riferimenti da oggetti nel relativo dominio a oggetti in altri domini. L'Infrastructure Master confronta i propri dati con quelli di un server del catalogo globale e riceve dal server del catalogo globale tutti i dati non presenti nel proprio database. Se tutti i DC di un dominio sono anche server del catalogo globale, tutti i DC disporranno di informazioni aggiornate (supponendo che la replica sia funzionale). In questo scenario, la posizione del ruolo Infrastructure Master è irrilevante, poiché non ha alcun lavoro da svolgere.
Il ruolo Infrastructure Master è anche responsabile della gestione degli oggetti fantasma. Gli oggetti fantasma sono utilizzati per tracciare e gestire i riferimenti persistenti agli oggetti eliminati e agli attributi con valore di collegamento che si riferiscono a oggetti in un altro dominio della foresta (ad esempio, un gruppo di sicurezza del dominio locale con un utente membro di un altro dominio).
Il ruolo può essere installato su qualsiasi controller di dominio in un dominio. Nel caso in cui la foresta Active Directory includa DC che non siano global catalog allora il ruolo va installato su uno di questi DC. La perdita del DC che possiede il ruolo di Infrastructure Master sarà probabilmente percepita solo dagli amministratori e potrà essere tollerata per un periodo prolungato. Sebbene la sua assenza comporti la mancata risoluzione corretta dei nomi dei collegamenti di oggetti cross-domain, la capacità di utilizzare le appartenenze di gruppo cross-domain non sarà compromessa.
RID Master
Il Relative Identifier Master (RID Master) è un ruolo a livello di dominio; in ogni dominio può essere presente un solo controller di dominio che funge da RID Master. Il RID Master è responsabile dell'elaborazione delle richieste del pool RID da tutti i controller di dominio in un determinato dominio. I pool di RID sono costituiti da un intervallo contiguo univoco di RID, che vengono utilizzati durante la creazione dell'oggetto per generare l'identificativo di sicurezza (SID) unico del nuovo oggetto. Il RID Master è anche responsabile dello spostamento degli oggetti da un dominio all'altro all'interno della foresta.
La perdita del RID Master di un dominio finirà per causare l'impossibilità di creare nuovi oggetti nel dominio, man mano che i pool di RID nei DC rimanenti si esauriscono. Sebbene possa sembrare che l'indisponibilità del DC che detiene il ruolo di RID Master possa causare un'interruzione significativa dell'operatività, negli ambienti maturi l'impatto è solitamente tollerabile per un periodo di tempo considerevole, a causa di un volume relativamente basso di eventi di creazione di oggetti.
PDC Emulator
L'emulatore del controller di dominio primario (PDC Emulator o PDCE) è un ruolo a livello di dominio; può essere presente un solo controller di dominio che funge da master dell'emulatore PDC in ogni dominio della foresta. L'emulatore PDC è un controller di dominio che si annuncia come controller di dominio primario (PDC) per workstation, server membri e controller di dominio che eseguono versioni precedenti di Windows. L'emulatore PDC controlla l'autenticazione all'interno di un dominio, sia Kerberos v5 che NTLM. Quando un utente cambia la password, la modifica viene elaborata dall'emulatore PDC.
PDC Emulator è responsabile di diverse operazioni cruciali:
Retrocompatibilità. Il PDCE imita il comportamento single-master di un controller di dominio primario di Windows NT. Per risolvere i problemi di retrocompatibilità, il PDCE si registra come DC di destinazione per le applicazioni legacy che eseguono operazioni scrivibili e per alcuni strumenti amministrativi che non conoscono il comportamento multi-master dei DC di Active Directory.
Sincronizzazione dell'ora. Ogni PDCE funge da sorgente temporale master all'interno del proprio dominio. Il PDCE nel dominio radice della foresta funge da server NTP (Network Time Protocol) preferito nella foresta. Il PDCE di ogni altro dominio della foresta sincronizza il suo orologio con il PDCE radice della foresta; i DC non PDCE sincronizzano i loro orologi con il PDCE del loro dominio e gli host collegati al dominio sincronizzano i loro orologi con il DC preferito. Un esempio dell'importanza della sincronizzazione temporale è l'autenticazione Kerberos: l'autenticazione Kerberos fallisce se la differenza tra l'orologio di un host richiedente e l'orologio del DC di autenticazione supera il massimo specificato (5 minuti per impostazione predefinita); questo aiuta a contrastare alcune attività dannose, come gli attacchi replay.
Aggiornamenti delle password. Quando le password di computer e utenti vengono modificate o reimpostate da un controller di dominio non PDCE, l'aggiornamento impegnato viene immediatamente replicato al PDCE del dominio. Se un account tenta di autenticarsi in un DC che non ha ancora ricevuto una modifica recente della password tramite la replica programmata, la richiesta viene passata al PDCE del dominio, che la elabora e indica al DC richiedente di accettarla o rifiutarla. Questo comportamento garantisce che le password possano essere elaborate in modo affidabile anche se le modifiche recenti non si sono propagate completamente attraverso la replica programmata. Il PDCE è anche responsabile dell'elaborazione dei blocchi degli account, poiché tutte le autenticazioni di password fallite vengono passate al PDCE.
Aggiornamenti dei Criteri di gruppo. Tutti gli aggiornamenti degli oggetti Criteri di gruppo (GPO) sono assegnate al PDCE del dominio. In questo modo si evitano i conflitti di versione che potrebbero verificarsi se una GPO venisse modificata su due DC nello stesso momento.
File system distribuito. Per impostazione predefinita, i server root del file system distribuito (DFS) richiedono periodicamente informazioni aggiornate sullo spazio dei nomi DFS al PDCE. Sebbene questo comportamento possa causare colli di bottiglia nelle risorse, l'attivazione del parametro Dfsutil.exe Root Scalability consentirà ai server root DFS di richiedere gli aggiornamenti dal DC più vicino.
Il PDCE deve essere collocato su un DC ad alta accessibilità, ben collegato e ad alte prestazioni. La perdita del DC che possiede il ruolo PDC Emulator può avere un impatto immediato e significativo sulle operazioni.
Identificare i DC con ruoli FSMO
Per identificare i controller di dominio con ruolo FSMO è possibile procedere tramite il prompt dei comandi o tramite PowerShell.
Dal prompt dei comandi è possibile eseguire il comando
netdom query fsmo /domain:<DomainName>
Ad esempio
netdom query fsmo /domain:mycompany.local
|
FIG 1 - Visualizzare i server DC con ruoli FSMO da prompt dei comandi |
Da PowerShell il comando da eseguire è
(Get-ADForest).Domains | ForEach-Object{Get-ADDomainController -Server $_ -Filter {OperationMasterRoles -like "*"}} | Select-Object Domain, HostName, OperationMasterRoles
|
FIG 2 - Visualizzare i server DC con ruoli FSMO da PowerShell |