In Windows 2000 Server e Windows Server 2003 è possibile definire una sola policy di password che si applica a tutti gli User Account del dominio. Questa impostazione è fatta attraverso una Group Policy applicata a livello di dominio.

Le policy di password definite in Group Policy applicate a livello di Organizational Unit, si applicano solo ai Computer Account (non agli user account) e hanno effetto solo sugli utenti locali definiti sui diversi computer.

Per applicare policy di password diverse a utenti diversi è necessario creare un dominio separato per un dato gruppo di utenti (es. un dominio per il diupartimento "Ricerca e Sviluppo" o per il dipartimenti "Risorse Umane"). In alternativa è possibile usare dei password filter prodotti da terze parti che consentono di gestire queste necessità.

In alcune situazioni questo rappresenta un evidente limite.

Windows Server 2008 supera questo limite consentendo la definizione di diverse Password Policy per utenti diversi.

La gestione di Password Policy multiple in Windows Server 2008 è possibile grazie all'introduzione di due nuove classi di oggetti:

  • Password Settings Container
  • Password Settings

Durante la creazione del domino è creata automaticamente un'istanza della prima classe (il container) con Distinguished Name CN=Password Settings Container, CN=System, DC=Domain, DC=TopDomain (dove Domain e TopDomain assumono di volta in volta il nome del dominio in cui si lavora; per es. DC=Contoso, DC=com). Questo container non è cancellabile ne modificabile.

Gli oggetti istanziati dalla seconda classe (Password Settings Object) corrispondono alle diverse impostazioni di password che vogliamo utilizzare e possono essere liberamente creati e modificati.

Ci sono delle pre-condizioni per poter usare e implementare le Password Policy:

  • Domain Functional Level: il livello funzionale del dominio deve essere impostato a Windows Server 2008
  • Permessi: per default solo gli amministratori di dominio hanno il diritto di creare, modificare e collegare oggetti PSO. E' possibile delegare, nella definizione della classe nello Schema, il diritto di Read Property a qualsiasi altro gruppo definito nel dominio o nella foresta.
  • Applicazione delle Password Policy: le password policy si applicano solo a User Account e Global Security Group. Le policy collegate direttamente ad uno User Account (Exceptional PSO) hanno la precedenza sulle policy applicate attraverso l'appartenenza ad un Global Security Group. Se ad uno stesso User Account sono applicate più Exceptional PSO la precedenza è data a quella con GUID più basso
  • Attributi: ogni PSO contiene più attributi; alcuni di questi sono obbligatori e altri facoltativi. Alcuni di questi attributi (tipicamenti quelli che indicano una intervallo temporale) richiedono l'inserimento di valori in formato I8 (intervalli di -100 nanosecondi). La seguente tabella aiuta nella conversione
Unità di tempo Fattore di moltiplicazione
minuti -60*(10^7)
ore -60*60*(10^7)
giorni -24*60*60*(10^7)

 

Attributo GPO Commento
msDS-PasswordSettingsPrecedence Password Settings Valore arbitrario usato per definire quale policy ha la precedenza se ad un gruppo si applicano piu PSO.
msDS-PasswordReversibleEncrisptionEnable Password Settings Booleano (default FALSE). Definisce se la password deve essere salvata in reversible encription
msDS-PasswordHistoryLength Password Settings Numero di password usate memorizzate dal sistema. Determina quante password un utente deve cambiare prima di poterne riutilizzare una. (default 24)
msDS-ComplexityEnabled Password Settings Booleano (default TRUE). Definisce se la password deve rispettare i criteri di complessità
msDS-MimimumPasswordLength Password Settings Definisce la lunghezza minima di una password (default 7)
msDS-MinimumPasswordAge Password Settings Formato I8 (default 1 giorno =  -864000000000) Durata minima di un password prima di poter essere modificata.
msDS-MaximumPasswordAge Password Settings Formato I8 (default 42 giorni = -36288000000000) Durata massima di una password
msDS-LockoutThreshold Account Lockout (Default 0) Definisce il numero di tentativi falliti prima di mettere un utente in lockout
msDS-LockoutObservationWindows Account Lockout Formato I8 (default 30 minuti = -18000000000) Dopo quanto tempo, dall'ultimo tentativo, il conteggio dei tentativi errati di logon viene azzerato
msDS-LockoutDuration Account Lockout Formato I8 (default 30 minuti = -18000000000)
msDS-PSOAppliesTo Elenco degli oggetti (User Accouint e/o Global Security Group) a cui la policy si applica

In Windows Server 2008 Beta 3 non esiste un intefaccia grafica, integrata nei tool di amministrazione, per la creazione e la gestione delle Password Policy.

E' possibile effettuare tutte le operazioni sulle Password Policy usando ADSIEdit o file LDIF.

La mia preferenza va alla seconda opzione per la maggiore rapidità e flessibilità.

Supponiamo di avere il dominio PGM.LH e di voler creare un Password Policy Settings Object di nome StrongPasswordPSO per il gruppo di utenti TopManagers.

Il file LDIF che implementa questa operazione deve contenere le seguenti direttive

dn: CN=StrongPasswordPSO,CN=Password Settings Container,CN=System,DC=pgm,DC=lh
changetype: add
objectClass: msDS-PasswordSettings
msDS-MaximumPasswordAge:-1728000000000
msDS-MinimumPasswordAge:-864000000000
msDS-MinimumPasswordLength:12
msDS-PasswordHistoryLength:30
msDS-PasswordComplexityEnabled:TRUE
msDS-PasswordReversibleEncryptionEnabled:FALSE
msDS-LockoutObservationWindow:-18000000000
msDS-LockoutDuration:-18000000000
msDS-LockoutThreshold:0
msDS-PasswordSettingsPrecedence:20
msDS-PSOAppliesTo:CN=TopManagers,CN=Users,DC=pgm,DC=lh

Questo file può essere applicato ad Active Directory con il comando

ldifde -i -f StrongPasswordPSO.ldif

Per modificare la Password Policy appena creata aggiungendo per esempio i gruppi di sicurezza SecurityManagers e HRusers si dovrà usare un file LDIF contenente le seguenti direttive

dn: CN=StrongPasswordPSO,CN=Password Settings Container,CN=System,DC=pgm,DC=lh
changetype: modify
add: msDS-PSOAppliesTo
msDS-PSOAppliesTo: CN=SecurityManagers,CN=Users,DC=pgm,DC=lh
msDS-PSOAppliesTo: CN=HRUsers,CN=Users,DC=pgm,DC=lh

ed applicarlo ad Active Directory con lo stesso comando ldifde appena visto.

Per cancellare la Password Policy appena creata il file LDIF dovrà contenere le seguenti direttive:

dn: CN=StrongPasswordPSO,CN=Password Settings Container,CN=System,DC=pgm,DC=lh
changetype: delete

ed essere applicato con il medesimo comando ldifde.

Potete trovare maggiori dettagli in questo articolo TechNet: http://technet2.microsoft.com/windowsserver2008/en/library/056a73ef-5c9e-44d7-acc1-4f0bade6cd751033.mspx?mfr=true

 

Giorgio