Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera pomoc w rozwiązaniu problemu, który powoduje niepowodzenie uwierzytelniania protokołu Kerberos S4U dla użytkownika w zaufanym lesie.
Oryginalny numer KB: 2959395
Symptomy
Uwierzytelnianie Kerberos S4U kończy się niepowodzeniem dla użytkownika w zaufanym lesie, gdy jest włączone uwierzytelnianie selektywne w relacji zaufania lasu.
W szczególności aplikacja, która wywołuje interfejs API LsalogonUser przy użyciu żądania klienta protokołu Kerberos S4U w celu uwierzytelnienia użytkownika w zaufanym lesie, może zakończyć się niepowodzeniem, jeśli spełnione są następujące warunki:
- Wartość ClientUPN podana dla użytkownika LsalogonUser reprezentuje użytkownika w zaufanym lesie, w którym włączono uwierzytelnianie selektywne.
- Wartość ClientRealm podana dla użytkownika LsalogonUser jest w postaci nazwy NetBIOS (płaskiej nazwy), a nie w pełni kwalifikowanej nazwy domeny (FQDN).
W takiej sytuacji ślad sieci pokazuje, że żądanie TGS dla konta krbtgt kończy się niepowodzeniem z błędem "STATUS_AUTHENTICATION_FIREWALL_FAILED (0xC0000413)".
Przyczyna
Ten problem występuje, gdy w ramach przetwarzania żądania LsalogonUser klient Protokołu Kerberos musi uzyskać bilet uwierzytelniania dla użytkownika z kontrolera domeny w zaufanym lesie użytkownika.
Jeśli wartość ClientRealm została przekazana w formacie nazwy płaskiej, klient Protokołu Kerberos nie używa biletu odwołania otrzymanego w ramach procesu odwołania. W związku z tym klient musi zażądać biletu usługi dla konta Krbtgt w domenie użytkownika.
Po włączeniu uwierzytelniania selektywnego kontroler domeny w domenie użytkownika sprawdza uprawnienie "Dozwolone do uwierzytelniania" na koncie Krbtgt, aby sprawdzić, czy tożsamość obiektu wywołującego, który wysyła żądanie biletu, ma dostęp.
Uwaga 16.
Obiekt wywołujący, który sprawia, że żądanie biletu usługi ma tożsamość, którą wątek, który wywołuje LsalogonUser, personifikował w tym czasie.
Jeśli uprawnienie "Dozwolone do uwierzytelniania" nie jest obecne, kontroler domeny w domenie użytkownika generuje błąd KDC_ERR_POLICY i rozszerzony błąd STATUS_AUTHENTICATION_FIREWALL_FAILED (0xC0000413).
Rozwiązanie
Aby rozwiązać ten problem, zastosuj jedną z następujących metod:
Metoda 1. Usuwanie selektywnego uwierzytelniania z zaufania
Kontroler domeny w domenie zasobów docelowych zignoruje uprawnienie "Dozwolone do uwierzytelniania" na koncie. Takie zachowanie może nie być pożądane w bezpiecznym środowisku.
Metoda 2. Dodawanie tożsamości obiektu wywołującego do uprawnienia "Dozwolone do uwierzytelniania" na koncie Krbtgt w domenie użytkownika docelowego
Ponieważ konto Krbtgt jest kontem chronionym, należy dodać uprawnienie "Dozwolone do uwierzytelniania" dla tożsamości obiektu adminSdHolder obiektu obiektu wywołującego. W tym celu wykonaj następujące kroki:
Otwórz wiersz polecenia na kontrolerze domeny w domenie użytkownika docelowego.
Uruchom następujące polecenie, aby dodać uprawnienie "Dozwolone do uwierzytelniania" do obiektu AdminSdholder:
dsacls "CN=AdminSDHolder,CN=System,DC=ForestB,DC=com" /G DomainA\callers-identity:CA;"Allowed to Authenticate"
Uwaga 16.
- DC=ForestB,DC=com jest nazwą wyróżniającą lasu docelowego użytkownika.
- DomainA to nazwa domeny, w której znajduje się tożsamość konta wywołującego użytkownika LsaLogonUser.
- Callers-identity to nazwa konta tożsamości, w ramach której jest wykonywane wywołanie LsaLogonUser.
Uruchom następujące polecenie, aby sprawdzić uprawnienie "Dozwolone do uwierzytelniania" na koncie docelowym:
dsacls "CN=AdminSDHolder,CN=System,DC=ForestB,DC=com"
Uruchom plik dsa.msc w domenie docelowej użytkownika, a następnie znajdź konto Krbtgt.
Wybierz właściwości konta docelowego, a następnie kliknij kartę Zabezpieczenia .
Dodaj uprawnienie "Dozwolone do uwierzytelniania" do konta, na którym jest wykonywane wywołanie LsaLogonUser.