2010-07-22 23 views
5

Zsynchronizuję użytkowników z zewnętrznego systemu do naszego. Potrzebuję ustawić hasło użytkownika w naszym Active Directory.Ustaw skrót hasła usługi Active Directory do wartości SHA1?

Dostarczam tylko SHA1 z haseł użytkownika zewnętrznego, a setPassword będzie mieszać wszystko, co wprowadzę.

  • Czy ustawienie użytkownika to unicodePwd w rzeczywistym polu skrótów?
    • Jeśli tak, czy mogę po prostu ustawić go na podany skrót?
    • Jeśli nie, w jaki sposób można ustawić hasz przechowywany przez Active Directory?

Odpowiedz

0

O ile rozumiem, nie można ustawić unicodePwd do rzeczywistego pola hash. Możesz użyć userPasswd, jak chcesz dla własnego wyboru, ale nie jest używany przez Active Directory.

0

O ile wiem, to, czego chcesz, nie jest możliwe. Można zmienić/ustawić hasła w AD przy użyciu co najmniej trzy różne protokoły:

Mam 100% pewności, że nie można użyć LDAP, ale warto sprawdzić pozostałe dwa, ponieważ może być jakiś sposób, aby to zrobić.

0

AD nie przechowuje tylko jednego typu hasza. Po zmianie hasła, DC odbiera wersję tekstu w postaci zwykłego tekstu, sprawdza jego złożoność, a następnie generuje i przechowuje MD4, MD5, PBKDF2 (4096 * SHA1) i kilka innych rodzajów skrótów. Dzieje się tak dlatego, że każdy mechanizm uwierzytelniania (NTLM, Kerberos, Digest, ...) używa innej funkcji skrótu, a AD musi wspierać je wszystkie.

Hash hasła jest przechowywany w tych atrybutach AD: unicodePwd, dBCSPwd, lmPwdHistory, ntPwdHistory i supplementalCredentials. Ze względów bezpieczeństwa nie można ich odczytać za pomocą LDAP lub ADSI. Ale ostatnio znaleźli sposób, aby je pobrać i stworzył PowerShell cmdlet że może to zrobić:

Get-ADReplAccount -SamAccountName John -Domain Contoso -Server LON-DC1 

Istnieje również słabo udokumentowany sposób pchnąć mieszań MD4 (aka NT hash) na stacji roboczej lub AD przez spuścizny SAMR protocol . Ponieważ nie ma wbudowanych poleceń, które eksponują tę funkcjonalność, utworzyłem też PowerShell cmdlets.

Aby wygenerować hash NT, można użyć tego polecenia PowerShell:

$hash = ConvertTo-NTHash (Read-Host -AsSecureString) 

I wreszcie, to polecenie popycha hash NT do AD:

Set-SamAccountPasswordHash -SamAccountName john -Domain ADATUM -NTHash $hash -Server dc1.adatum.com 

Polecenia te mogą być używane do migracji hasła między kontami lokalnymi i domenowymi lub między AD i Sambą. Ale uważaj, uwierzytelnianie Kerberos-AES i WDigest nie będzie działać z tym kontem, tylko NTLM i Kerberos-RC4.

Powiązane problemy