Un dominio AD DS compromesso non si ripara: si ricostruisce. Per questo l’esame non chiede «come si imposta una password policy», ma quali controlli si sommano e che cosa smette di funzionare quando li accendi: qui AZ-802 misura le conseguenze, non la configurazione.
Le password: tre strati che devono essere tutti d’accordo
Su un account convivono fino a tre insiemi di regole, e non sono alternativi.
| Strato | Dove si configura | Che cosa decide |
|---|---|---|
| Default Domain Policy | GPO a livello di dominio | lunghezza, complessità, storia, lockout per tutti |
| Fine-grained password policy (PSO) | Password Settings Container, New-ADFineGrainedPasswordPolicy |
stesse regole, ma applicate a utenti o gruppi globali con precedenza |
| Microsoft Entra Password Protection | portale Entra + agenti on-premises | banna password deboli e termini vietati, globali e custom |
AD DS accetta una password nuova solo se tutti i validatori concordano: Entra Password Protection è un supplemento, non un rimpiazzo, e convive con qualsiasi altro password filter DLL di terze parti. Se un PSO impone 15 caratteri, il banned list non abbassa quel minimo, e viceversa una password di 20 caratteri costruita su un termine vietato viene comunque respinta.
Microsoft Entra Password Protection per AD DS
Due componenti, nessuna delle quali mette i DC su Internet:
- il proxy service su un member server aggregato al dominio, che inoltra a Entra ID le richieste di download della policy. È obbligatorio anche se il DC avesse accesso diretto a Internet;
- il DC agent, composto da password filter DLL più servizio, installato sui domain controller.
Il DC agent scarica la policy, la deposita in una cartella dedicata nella radice di sysvol (da cui replica agli altri DC) e ne verifica l’età ogni ora. Se nessuna policy è disponibile localmente, la password viene accettata e viene loggato un evento di avviso.
Requisiti che l’esame ama chiedere: DC agent e proxy su Windows Server 2012 R2 o successivo,
.NET Framework 4.7.2, replica di sysvol in DFSR (con FRS il software si installa ma non
funziona), connettività RPC (porta 135 più la porta del proxy, dinamica o statica via
Set-AzureADPasswordProtectionProxyConfiguration -StaticPort). Il livello funzionale di dominio e
foresta è irrilevante e non servono estensioni di schema.
La registrazione avviene due volte: Register-AzureADPasswordProtectionProxy per ogni proxy (Global
Administrator la prima volta nel tenant, poi basta Security Administrator) e
Register-AzureADPasswordProtectionForest una volta per foresta, con privilegi di Enterprise
Admin on-premises. L’installazione del DC agent richiede un riavvio; quella del proxy no.
Modalità: si accendono dal Microsoft Entra admin center, in Authentication methods > Password protection, con Audit (si logga soltanto) o Enforced (si rifiuta). La validazione avviene solo su cambio o reset della password: le password già esistenti in directory non vengono mai rivalutate.
Protected Users: protezione non configurabile
Aggiungere un account al gruppo Protected Users (RID 525) applica restrizioni che non si
possono modulare. Sul client: niente credenziali in chiaro per CredSSP, niente WDigest, nessuna
cache dell’NTOWF per NTLM, nessuna chiave DES o RC4, e soprattutto nessun cached verifier,
quindi niente sign-in offline. Sul domain controller, se il domain functional level è Windows
Server 2012 R2 o superiore: niente autenticazione NTLM, niente DES/RC4 in pre-autenticazione
Kerberos, nessuna delega (vincolata o non vincolata) e TGT non rinnovabile oltre le 4 ore
iniziali (240 minuti cablati).
Mai inserirci account di servizio o computer: sull’host la password è comunque disponibile, non guadagni nulla e l’autenticazione in ingresso fallisce. E serve una chiave AES: gli account la cui password non è mai stata cambiata su un DC Windows Server 2008 o successivo si autobloccano.
Authentication policy e authentication policy silo
Dove Protected Users è rigido, le authentication policy sono configurabili. Una policy definisce la
durata del TGT (sempre non rinnovabile) e le condizioni di access control:
ms-DS-User-Allowed-To-Authenticate-From (da quali dispositivi l’utente può fare sign-in) e
...-To (chi può autenticarsi verso un servizio che gira con quell’account). Il silo lega utenti,
computer e service account e applica loro le policy; un account può stare in un solo silo.
Requisito chiave: la restrizione «solo da questi host» si valuta sul TGT dell’host usato per
armorare la richiesta, quindi richiede DFL Windows Server 2012 R2 e il supporto Dynamic
Access Control (Key Distribution Center (KDC) client support for claims, compound authentication and Kerberos armoring sui DC, Kerberos client support... sui client). La sola durata del TGT non
richiede DAC.
New-ADAuthenticationPolicy Tier0-Policy -UserTGTLifetimeMins 240 `
-UserAllowedToAuthenticateFrom (Get-Acl .\tier0hosts.txt).sddl -Enforce
New-ADAuthenticationPolicySilo -Name Tier0-Silo -Enforce
Grant-ADAuthenticationPolicySiloAccess -Identity Tier0-Silo -Account adm.rossi
Set-ADAccountAuthenticationPolicySilo -Identity adm.rossi -AuthenticationPolicySilo Tier0-Silo
Policy e silo nascono in audit mode: senza -Enforce generano solo eventi (log
AuthenticationPolicyFailures-DomainController, ID 105/305 per il TGT, 106/306 per il service
ticket). E l’Administrator predefinito del dominio (S-1-5-21-<dominio>-500) è sempre esente
dalle authentication policy, anche dentro un silo enforced.
Irrobustire e restringere l’accesso ai DC
Il principio è uno solo: non si amministra un sistema fidato da un host meno fidato. Da qui le
pratiche che l’esame dà per acquisite — host amministrativi dedicati, senza browser né posta, senza
accesso a Internet, con BitLocker e allowlist applicativa (oggi App Control for Business,
confluenza di AppLocker e WDAC), aggiornati da un’infrastruttura di patching separata e raggiunti via
jump server con RD Gateway. Si aggiungono Interactive logon: Require smart card e soprattutto i
user rights assignment: concedere Allow log on locally e Allow log on through Remote Desktop
Services solo agli account di quel livello, e negare esplicitamente (Deny access to this computer
from the network, Deny log on as a batch job, Deny log on as a service, Deny log on locally,
Deny log on through Remote Desktop Services) gli account privilegiati sulle macchine di livello
inferiore. Nelle filiali non presidiate si usa un RODC; per l’amministratore locale, Windows
LAPS; per le attività delegate, JEA.
Account, gruppi predefiniti e delega
Sugli account privilegiati: Account is sensitive and cannot be delegated (la si controlla anche in
troubleshooting, perché Protected Users blocca la delega senza che la casella risulti spuntata),
Smart card is required for interactive logon, tipi di cifratura Kerberos limitati ad AES. I gruppi
predefiniti — Domain Admins, Enterprise Admins, Schema Admins, Account Operators — sono protetti da
AdminSDHolder: il processo SDProp riscrive ogni 60 minuti l’ACL dei membri, imposta adminCount
a 1 e disabilita l’ereditarietà, quindi una delega applicata direttamente su quegli oggetti sparisce
da sola. Tenere Schema Admins vuoto e usare account separati per livello è la contromisura corretta.
«Delega» in AD DS ha due significati e l’esame li mescola: la delega amministrativa (ACE su OU,
Delegation of Control Wizard) e la delega Kerberos. Di quest’ultima: unconstrained (da evitare),
constrained (configurata sull’account front-end) e resource-based constrained delegation, che si
configura invece sulla risorsa con Set-ADComputer -PrincipalsAllowedToDelegateToAccount.
Sui protocolli: Kerberos è il default, NTLM si riduce con le policy Network security: Restrict NTLM
(prima in audit), RC4 si dismette con Network security: Configure encryption types allowed for Kerberos, e LDAP va protetto con signing e channel binding. Per i servizi, gMSA; i dMSA
(delegated Managed Service Account) esistono solo da Windows Server 2025 e richiedono il
relativo livello funzionale di dominio.
Trappole tipiche d’esame
- PSO ed Entra Password Protection non si escludono. Se un PSO impone 15 caratteri e il DC agent è attivo, la password deve superare entrambi: il banned list non solleva né abbassa il minimo di lunghezza, e AD DS richiede il consenso di tutti i validatori.
- Sui RODC non si installa il DC agent (i cambi password sono inoltrati ai DC scrivibili) e il proxy non è supportato su un RODC. Il DC agent va invece su tutti i DC scrivibili: il deploy parziale è ammesso, ma solo per test. Il livello funzionale non è un requisito; DFSR sì.
- Protected Users toglie il sign-in offline. Gli utenti che lavorano scollegati dalla rete non riescono più a sbloccare il portatile perché il cached verifier non viene più creato. Non è un bug del laptop: è la protezione che funziona.
- L’Administrator predefinito (RID 500) ignora le authentication policy, anche se lo metti in un silo enforced. Se lo scenario chiede perché quell’unico account continua ad autenticarsi da una postazione qualsiasi, la risposta è questa, non un errore di configurazione.
- Le condizioni «allowed to authenticate from» richiedono Kerberos armoring. Senza DFL 2012 R2
e senza Dynamic Access Control abilitato su DC e client, la restrizione non si applica (o fa
fallire i client che non armorano). Il solo
UserTGTLifetimeMinsinvece funziona senza DAC. E ricorda che policy e silo nascono in audit. - I livelli funzionali oggi si possono anche abbassare. La vecchia regola «si alzano e basta» non è più vera: non scartare una risposta solo perché prevede un downgrade del functional level.