Ziarniste polityki haseł

 Od lutowego CTP dostepne sa ziarniste polityki hasel - czyli mozliwosc przypisywania polityk hasel do uzytkowników/ grup globalnych. Glówne cechy nowych polityk to:

  • Polityki Hasel sa oparte o obiekty PSO (Password Sttins Objects)
  • Obiekty PSO sa polaczone z kontami uzytkowników/ grup globalnych za pomoca mechanizmu forward/backlink, podobnie jak czlonkostwo w grupie.
  • Wiele obiektów PSO moze byc podlaczonych do jednego obiektu uzytkownika, jednak nie beda scalane – tylko jedna polisa bedzie aktywna.
  • Jesli wiele obiektów jest podpiety do uzytkownika, wygrywa ten który ma najnizszy atrybut precedence. Jesli atrybut precedence jest taki sam w kilku polisach, wygrywa ta która ma najnizszy GUID.
  • Polityki przechowywane sa w CN=System,CN=Password Settings Container
  • Nie przewiduje sie wsparcia dla polis na OU w Windows Server Longhorn

Wiecej informacji dotyczacych polityk mozna znalezc pod tym adresem..

Jako ze w obecnej wersji nie istnieje GUI do edycji tych polityk hasel, pzrygotowalem przykladowy skrypt który tworzy obiekt Polityki, wszystkie wymagane atrybuty, oraz podpina polityke pod konto uzytkownika - skrypt znajduje sie w zalaczniku. Oczywiscie podobny efekt mozna uzyskac korzystajac z wbudowanego ADSIEDIT.

#pobieramy kontener Hasel
$ou=[ADSI]"LDAP://CN=Password Settings Container,CN=System,DC=contoso,DC=local"
#tworzymy obiekt polityki hasel
$policy = $ou.Create("msds-passwordsettings","cn=myPolicy")
$policy.Put("msDS-PasswordSettingsPrecedence","10") #prirytet mniejszy->lepszy
$policy.Put("msDS-PasswordHistoryLength","15")
$policy.Put("msDS-MinimumPasswordLength","12")
$policy.Put("msDS-MinimumPasswordAge","-864000000000") # 1dzien
$policy.Put("msDS-MaximumPasswordAge","-36288000000000") # 42dni
$policy.Put("msDS-LockoutThreshold","0")
$policy.Put("msDS-LockoutObservationWindow","-18000000000") # 8minut
$policy.Put("msDS-LockoutDuration","-18000000000") #8minut
$policy.Put("msDS-PasswordComplexityEnabled",[bool]0)
$policy.Put("msDS-PasswordReversibleEncryptionEnabled",[bool]0)
$policy.SetInfo()
#Dopisanie polisy do uzytkownika
$policy.Put("msDS-PSOAppliesTo","CN=peki,CN=Users,DC=contoso,DC=local")
$policy.SetInfo()