Thursday, November 13th, 2008...12:35 am

W delegacji …

Jump to Comments

Będąc w delegacji i lecąc właśnie w kierunku drugiej strony kanału postanowiłem napisać coś o delegacji, w szczególności o delegacji uprawienia do ustawienia flagi “User must change password at next logon” w konsoli ADU&C.

(cc) Stillframe

Takie zadanie postawił jeden z moich ulubionych klientów ( 🙂 ) a ja je z chęcią postanowiłem rozwiązać. Delegacje tego uprawnienia można wykonć na poziomie poszczególnych kontenerów (czy też obiektów jeżeli ktoś by chciał) poprzez delegację uprawnienia do atrybuty pwdLastSet. Ustawienie wartości tego atrybutu na 0 wymusza na użytkownikach zmianę hasła przy następnym logowaniu.

Zadanie w zasadzie proste i nieskomplikowne, jednak postanowiłem je trochę skomplikować i zbaczyć czy da się wydelegować tylko uprawnienie do wygaśnięcia hasła, bez jego zmiany. Sprawdźmy więc … nadając uprawnienie do atrybutu pwdlLastSet oraz uprawnienie “Reset Password”:

nTSecurityDescriptor: [DACL] OBJ ALLOW;[CONT INHERIT][INHERITED];[CTL];Reset Password;user;<SID>
nTSecurityDescriptor: [DACL] OBJ ALLOW;[CONT INHERIT][INHERITED];[READ PROP][WRT PROP];pwdLastSet;user;<SID>

Możemy bez problemu wykonać operację wymuszenia zmiany hasła przy następnym logowaniu:

***Call Modify…

ldap_modify_ext_s(ld, ‘CN=jan jan,OU=TEst USers,DC=w2k,DC=pl’,[1] attrs, SvrCtrls, ClntCtrls);

Modified "CN=jan jan,OU=TEst USers,DC=w2k,DC=pl".

Odwołując uprawnienie “Reset password”:

nTSecurityDescriptor: [DACL] OBJ ALLOW;[CONT INHERIT][INHERITED];[READ PROP][WRT PROP];pwdLastSet;user;<SID>

i próbując wykonać taką samą operację dostajemy odmowę dostępu:

***Call Modify…

ldap_modify_ext_s(ld, ‘CN=jan jan,OU=TEst USers,DC=w2k,DC=pl’,[1] attrs, SvrCtrls, ClntCtrls);

Error: Modify: Insufficient Rights. <50> Server error: 00000005: SecErr: DSID-031A1169, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0

Error 0x5 Access is denied.

 

Cóż, po chwili zastanowienia efekt jak najbardziej spodziewany. Po co delegować uprawnienie do wymuszenia zmiany hasła bez uprawnienia do zmiany tegoż? Sensowne.

Gdyby jednak przyszedł komuś do głowy taki scenariusz to delegacji takiej nie można wykonać.Atrybut pwdLastSet może być modyfikowany tylko przez system,lub przez użytkownika, który posiada zarówno uprawnienie do zmiany hasła (Reset password) jak i do uaktualnienia pwdLastSet. Do zapamiętania.

I jak zwykle odpowiedź już po sprawdzeniu empirycznym można znaleźć w artykule KB 296999. To czego brakuje mi w tym KB to informacji, że uprawnienia do pwdLastSet nie można wydelegować samodzielnie. Niniejszym dziurę uzupełniam.

 

P.S. Jeżeli niejaka Jola Rutowicz ma zespół sobowtórów to dzisiaj miałem (nie) przyjemność z jedną z nich podróżować. Ciężkie przeżycie:)

2 Comments

Leave a Reply