În realitate, depanez o aplicație C#, dar din moment ce aceeași comandă este posibilă în PowerShell, încerc acolo.
Încerc să validez conturile de utilizator folosind următoarele în PowerShell:
> Add-Type -AssemblyName System.DirectoryServices.AccountManagement
> $ds = New-Object System.DirectoryServices.AccountManagement.PrincipalContext(„domeniu”, „<domeniu>”, „<OuDN>”, „negocia”, „<nume utilizator>”, „<parolă>”)
> $ds.ValidateCredentials(„<nume utilizator>”, „<parolă>”, „negociați”)
Ultima comandă returnează întotdeauna false, am verificat că acreditările sunt corecte conectându-mă cu ele. Am renunțat la autentificarea NTLM în mediu și pot vedea de fiecare dată când execut ValidateCredentials()
o conexiune NTLM de către lsass.exe este blocată (ID de eveniment 4002 în vizualizatorul de evenimente). Am activat înregistrarea Kerberos, dar nu sunt generate evenimente în vizualizatorul de evenimente când încerc să validez. Acesta este rândul meu mă face să cred că nici măcar nu încearcă autentificarea Kerberos, dar s-ar putea să greșesc aici.
Am verificat că există SPN-uri pentru computer cu setspn -L
, și deoarece autentificarea Curb funcționează peste tot în sistem, nu sunt sigur că este o configurație greșită.
Actualizați:
Am găsit o soluție, dar nu am postat-o încă ca răspuns, deoarece am încă un comportament ciudat. Am adăugat @<domeniu>
la numele de utilizator și acest lucru funcționează în aplicația C# pe care o depanez, dar rularea exact aceeași comandă în PowerShell încă returnează false, deși acum primesc un KDC_ERR_PRAUTH_FAILED
în vizualizatorul de evenimente.