Abbiamo una configurazione IDAM leggermente complicata:
Cioè la macchina e il browser dell'utente finale si trovano in una rete con l'AD padre e la nostra applicazione basata su Jetty e l'AD con cui può parlare (AD locale) siedono nell'altra.
Esiste un trust bidirezionale tra i due AD. Il browser nella rete principale ha il dominio locale in siti attendibili.
L'impostazione del server Jetty è la seguente:
- utilizza un file keytab generato su un'entità nell'AD locale
- è in esecuzione come servizio Windows con un utente definito nell'AD locale
- regno, mappatura dominio-dominio e kdc sono definiti rispetto al dominio dell'AD locale
- usa spnego - isInitiator è impostato su false; doNotPrompt è vero; storeKey è vero
Il problema è:
- come test, l'accesso al server da un browser all'interno della rete locale (cioè collegato all'AD locale) funziona : le informazioni di debug di Kerberos vengono visualizzate nei registri, posso vedere la negoziazione Kerberos corretta nel traffico HTTP e l'utente accede automaticamente . Brillante.
tuttavia , l'accesso al server da un browser all'interno della rete principale (che è il modo in cui i nostri utenti faranno le cose) non funziona! Il browser recupera una 401 unauth ma poi richiede le credenziali, che una volta inserite danno una schermata vuota. Quindi, facendo clic sulla barra degli indirizzi e premendo Invio si esegue una delle due operazioni, a seconda che le credenziali siano per l'AD remoto o locale:
- le credenziali AD locali quindi accedono correttamente, con Kerberos da zero nei registri (richiesta GET, risposta 401 non autentica, richiesta intestazioni Kerberos, ecc.)
- credenziali AD remoti non il log-in (richiesta GET, 401 risposta unauth, quella che appare come un header NTLM:
Authorization: Negotiate <60 or so random chars>
)
Ad ogni modo, il fatto che sia un suggerimento è sbagliato!
C'è una spiegazione per questi sintomi? Il setup che possiamo fare è quello che vogliamo?
In termini di cosa sopra la descrizione sopra potrebbe essere sbagliata: qualsiasi configurazione che ho menzionato riguardo al server Jetty dovrebbe essere accurata, come ho fatto io. Sono felice di fornire maggiori dettagli. Qualsiasi configurazione riguardante AD o il browser di rete principale è potenzialmente sospetta, perché non è sotto il mio controllo e ho avuto la configurazione segnalata a me piuttosto che vederla da sola.