Temos uma configuração do IDAM um pouco complicada:
Ou seja, a máquina e o navegador do usuário final ficam em uma rede com o AD pai, e nosso aplicativo baseado em Jetty e o AD com o qual ele pode conversar (AD local) ficam no outro.
Há uma confiança bidirecional entre os dois ADs. O navegador na rede pai possui o domínio local em sites confiáveis.
A configuração do servidor Jetty é a seguinte:
- ele usa um arquivo keytab gerado em relação a um principal no AD local
- está sendo executado como um serviço do Windows em um usuário definido no AD local
- o domínio, o mapeamento de domínio de domínio e o kdc são definidos no domínio do AD local
- ele usa spnego - isInitiator está definido como false; doNotPrompt é true; storeKey é verdadeiro
O problema é:
- como teste, acessar o servidor a partir de um navegador dentro da rede local (por exemplo, vinculado ao AD local) funciona - as informações de depuração do Kerberos aparecem nos logs, posso ver a negociação correta do Kerberos no tráfego HTTP e o usuário é conectado automaticamente . Brilhante.
no entanto , acessar o servidor a partir de um navegador dentro da rede pai (que é como nossos usuários farão as coisas) não funciona! O navegador recupera um 401 unuth, mas solicita credenciais, que, quando inseridas, exibem uma tela em branco. Em seguida, clicar na barra de endereço e pressionar Enter faz uma das duas coisas, dependendo se as credenciais são para o AD remoto ou local:
- credenciais locais do AD, em seguida, efetuem login corretamente, com o Kerberos do zero nos logs (solicitação GET, resposta sem resposta 401, solicitação de cabeçalhos Kerberos etc.)
- credenciais AD remotos não faça o login (request GET, 401 resposta unauth, o que parece ser um cabeçalho NTLM:
Authorization: Negotiate <60 or so random chars>
)
De qualquer maneira, o fato de que isso está acontecendo está errado!
Existe uma explicação para esses sintomas? A configuração que temos pode fazer o que queremos?
Em termos da descrição acima, pode estar errado: qualquer configuração que eu mencionei em relação ao servidor Jetty deve ser precisa, como fiz. Estou feliz em fornecer mais detalhes. Qualquer configuração referente ao AD ou ao navegador da rede pai é potencialmente suspeita, porque não está sob meu controle e eu tive a configuração relatada para mim em vez de ver por mim mesma.