Sto cercando di implementare SSO utilizzando un client Windows e JBoss. Possiedo il mio PC di sviluppo, JBoss gira su Windows 7, sul server di sviluppo, gira su Linux (Red Hat).Perché IE non invia le informazioni del ticket Kerberos al mio JBoss su Linux?
C'è un JBoss Negotiation Toolkit che mi consente di controllare se l'intestazione di Negazione sta arrivando correttamente.
Il test BasicNegotiation
funziona correttamente finché ho JBoss in esecuzione sul mio PC, utilizzando localhost
. L'intestazione inviata è
Authorization: Negotiate YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIKB...
(più qualche altro byte)
La risposta del test è
negoziazione Toolkit negoziazione di base WWW-Authenticate - Negoziare YHgGBisGAQUFAqBuMGygMDAuBgorBgEEAYI3AgIK ...
NegTokenInit Message Oid - SPNEGO Tipi Mech - {} {NTLM Kerberos V5 Legacy} {Kerberos V5} {} 1.3.6.1.4.1.311.2.2.30 Visione Requisiti Bandiere - Mech Moneta -TlRMTVNTUAABAAAAl7II4gQABAAyAAAACgAKACgAAAAGAbAdAAAAD0lQSUVWMTAwMjVJUElF Mech Lista Mic -
Ma sul Server Linux, lo stesso test non funziona. Il motivo di base (credo) è che l'intestazione sembra diverso:
Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==
E poi il JBoss negoziazione Toolkit fa un fallback a NTLM Authentication, che io non voglio e che appare come errore nell'output del webapp.
negoziazione Toolkit NTLM Negoziazione WWW-Authenticate - Negoziare TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw ==
NTLM - Negotiate_Message Attenzione, questo è NTLM, solo SPNEGO è supportato! Negozia flag - (encryption56Bit) (explicitKeyExchange) (sessionKeyExchange128Bit) negotiateVersion) (ntlm2) (alwaysSign) (ntlm) (lmKey) (sign) (requestTarget) (oem) (unicode) Nome dominio = null - {length = 0 } {maxLength = 0} {offset = 0} Nome workstation = null - {length = 0} {maxLength = 0} {offset = 0} Versione -?
Ho configurato sia Internet Explorer sia Firefox per inviare l'intestazione Negoziazione, ed entrambi falliscono con il server Linux.
Cosa sto sbagliando?
A proposito: ho letto da qualche parte che Windows invia sempre l'intestazione di negoziazione Kerberos su macchine locali - è vero?