Mamy nieco skomplikowaną konfigurację IDAM:
Oznacza to, że komputer i przeglądarka użytkownika końcowego siedzą w jednej sieci z nadrzędnym AD, a nasza aplikacja oparta na Jetty i AD, z którymi może rozmawiać (lokalna AD), siedzą w drugiej.
Między tymi dwiema reklamami istnieje dwukierunkowe zaufanie. Przeglądarka w sieci nadrzędnej ma domenę lokalną w zaufanych witrynach.
Konfiguracja serwera Jetty jest następująca:
- wykorzystuje plik tabeli kluczy wygenerowany dla nazwy użytkownika w lokalnej usłudze AD
- działa jako usługa systemu Windows w ramach użytkownika zdefiniowanego w lokalnej usłudze AD
- dziedzina, odwzorowanie dziedziny domeny i kdc są zdefiniowane względem domeny lokalnego AD
- używa spnego - isInitiator ma ustawioną wartość false; doNotPrompt jest prawdą; storeKey jest prawdą
Problemem jest:
- jako test, dostęp do serwera z poziomu przeglądarki wewnątrz sieci lokalnej (czyli związane z miejscowym AZS) działa - Kerberos informacji debugowania pojawia się w dziennikach, widzę poprawną negocjację Kerberos w ruchu HTTP, a użytkownik jest zalogowany automatycznie . Znakomity.
jednak dostęp do serwera z przeglądarki w sieci macierzystej (tak robią nasi użytkownicy) nie działa! Przeglądarka odbiera nieautoryzowany komunikat 401, ale następnie wyświetla monit o podanie poświadczeń, które po wprowadzeniu powodują wyświetlenie pustego ekranu. Następnie kliknięcie w pasek adresu i naciśnięcie klawisza Enter powoduje jedną z dwóch rzeczy, w zależności od tego, czy dane uwierzytelniające dotyczą zdalnego czy lokalnego AD:
- lokalne poświadczenia AD następnie logują się poprawnie, Kerberos od zera w logach (żądanie GET, odpowiedź 401 nieautoryzowana, żądanie nagłówków Kerberos itp.)
- zdalne poświadczenia AD nie zalogować (żądanie GET, 401 UNAUTH odpowiedź, co wygląda nagłówka NTLM:
Authorization: Negotiate <60 or so random chars>
)
Tak czy inaczej, fakt, że to podpowiada, jest zły!
Czy istnieje wyjaśnienie tych objawów? Czy konfiguracja, którą mamy, robi to, co chcemy?
Pod względem tego, co w powyższym opisie może być błędne: każda konfiguracja, o której wspomniałem w odniesieniu do serwera Jetty, powinna być dokładna, tak jak to zrobiłem. Z przyjemnością podam więcej szczegółów. Każda konfiguracja dotycząca AD lub przeglądarki sieci nadrzędnej jest potencjalnie podejrzana, ponieważ nie jest pod moją kontrolą, a konfiguracja została mi zgłoszona, a nie sama.