2013-06-27 27 views
5

Próbuję zaimplementować logowanie jednokrotne przy użyciu klienta Windows i JBoss. Własny komputer programistyczny, JBoss działa na systemie Windows 7, na serwerze programistycznym, działa na systemie Linux (Red Hat).Dlaczego IE nie wysyła informacji o biletach Kerberos do mojego JBoss na Linuksie?

Istnieje JBoss Negotiation Toolkit, który pozwala mi sprawdzić, czy nagłówek Negiation przybywa poprawnie.

Test BasicNegotiation działa dobrze tak długo, jak JBoss działa na moim własnym komputerze, używając localhost. Wysłany nagłówek jest

Authorization: Negotiate YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIKB... (plus kilka bajtów)

odpowiedzi testu jest

Negocjacja Toolkit Podstawowe Negocjacja uwierzytelniania w sieci WWW - Negocjuj YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIK ...

NegTokenInit Wiadomość Oid - SPNEGO Mech Rodzaje - {} {NTLM Kerberos V5 Legacy} {} {Kerberos V5 1.3.6.1.4.1.311.2.2.30} Req flagi - Mech Reklamowe -TlRMTVNTUAABAAAAl7II4gQABAAyAAAACgAKACgAAAAGAbAdAAAAD0lQSUVWMTAwMjVJUElF Mech Lista Mic -

lecz na Serwer Linux, ten sam test nie działa. Powodem baza (chyba) jest to, że nagłówek wygląda inaczej:

Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==

A potem JBoss Negocjacja Toolkit sprawia, że ​​przełączenie na NTML uwierzytelniania, która nie chce i który pojawia się jako błąd w wynikach aplikacji internetowej.

Negocjacja Toolkit NTLM Negocjacja uwierzytelniania w sieci WWW - Negocjuj TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw ==

NTLM - Negotiate_Message Ostrzeżenie, to jest NTLM, tylko SPNEGO jest obsługiwany! Negocjuj flagi - (encryption56Bit) (explicitKeyExchange) (sessionKeyExchange128Bit) negotiateVersion) (ntlm2) (alwaysSign) (ntlm) (lmKey) (znak) (requestTarget) (oem) (Unicode) Nazwa domeny = null - {length = 0 } {maxLength = 0} {offset = 0} Stacja robocza Name = null - {length = 0} {maxLength = 0} {offset = 0} Wersja -?

Skonfigurowałem zarówno Internet Explorer, jak i Firefox, aby wysłać nagłówek Negocjacji, a oba z nich ulegną awarii z serwerem Linux.

Co robię źle?

Przy okazji: Czytałem gdzieś, że Windows zawsze wysyła nagłówek Negocjacji Kerberos na lokalnych maszynach - czy to prawda?

Odpowiedz

1

Dzięki za odpowiedzi. W naszym przypadku problem polegał na tym, że mamy dwie domeny Windows. Próbowałem uzyskać dostęp do serwera Linux w domenie A z Windows Browser w domenie B. Oczywiście, to nie działa ...

0

Przeglądarka wysyła token typu NTLM typu 1, ponieważ protokół Kerberos nie działa, ponieważ konfiguracja AD/DNS jest niepoprawna. To zachowanie jest poprawne. Napraw swoją konfigurację DNS.

0

Oto dobre podsumowanie tego, co może się nie udać: https://www.pingidentity.com/support/answers/index.cfm/why-am-i-not-getting-a-kerberos-ticket?id=90640000000CaWgAAK

zawsze zrobić zrzut wireshark zobaczyć komunikację pomiędzy przeglądarką i usługi, a także pomiędzy przeglądarką a AD. W twoim przypadku problem może dotyczyć tego ostatniego. Na przykład raz użyłem adresu http://myGoodLookingDNSAlias dla usługi, który został rozwiązany na http://realBadLookingServerName, ale zapomniałem go zarejestrować. Tak więc przeglądarka otrzymała od AD błąd o błędzie KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN i nie wysłała biletu.

Pozdrawiam, András

1

Mój Internet Explorer służył do wysyłania nagłówka NTLM zamiast jednego Kerberos. Powód: Windows miał zapisane hasło dla tego samego hosta w swoim sejfie.

Użytkownik i hasło wprowadzone do sejfu nie były takie same jak moje konto Windows, ale nie robiło to różnicy. Istotna była tylko nazwa serwera (nawet nie w pełni kwalifikowana).

Zbiorniki do http://www.msxfaq.de/verschiedenes/kerberosbrowser.htm dla wyjaśnienia (w języku niemieckim).

Windows safe