Esta configuração do Kerberos / AD é possível?

9

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 no Jetty e o AD com o qual ele pode se comunicar (AD local) ficam no outro.

Existe uma relação de confiança bidirecional entre os dois anúncios. O navegador na rede principal tem o domínio local em sites confiáveis.

A configuração do servidor do Jetty é a seguinte:

  • ele usa um arquivo keytab gerado contra um principal no AD local
  • está sendo executado como um serviço do Windows sob um usuário definido no AD local
  • o reino, o mapeamento de domínio-domínio e o kdc são definidos no domínio do AD local
  • usa spnego - isInitiator é definido como false; doNotPrompt é verdadeiro; O storeKey é verdadeiro

O problema é:

  • como teste, acessando o servidor a partir de um navegador dentro da rede local (isto é, vinculado ao AD local) funciona - informações de depuração do Kerberos aparecem nos logs, vejo a negociação correta do Kerberos no Tráfego HTTP e o usuário está conectado automaticamente. Brilhante.
  • no entanto , acessar o servidor a partir de um navegador dentro da rede principal (que é como nossos usuários farão as coisas) não funciona! O navegador recupera a 401 de volta, mas solicita credenciais, que, quando inseridas, exibem uma tela em branco. Em seguida, clicar na barra de endereço e pressionar Enter faz uma de duas coisas, dependendo se as credenciais são para o AD local ou remoto:

    • credenciais locais do AD, em seguida, faça o login, com o Kerberos do zero nos logs (solicitação GET, resposta sem proteção 401, solicitação de cabeçalhos Kerberos, etc.)
    • as credenciais remotas do AD não fazem login (solicitação GET, 401 resposta não-verdadeira, o que parece ser um cabeçalho NTLM: Authorization: Negotiate <60 or so random chars> )

De qualquer forma, o fato de que isso está sugerindo está errado!

Existe uma explicação para esses sintomas? A configuração que podemos fazer o que queremos?

Em termos do que sobre a descrição acima pode estar errada: qualquer configuração que eu tenha mencionado sobre o servidor Jetty deve ser precisa, como eu fiz. Fico feliz em fornecer mais detalhes. Qualquer configuração referente ao AD ou ao navegador de rede pai é potencialmente suspeita, porque não está sob meu controle e eu tive a configuração relatada para mim, em vez de tê-la visto por mim mesmo.

    
por Robert Grant 27.07.2016 / 18:51

2 respostas

3

Sem ver a captura de pacotes, acho que o HTTP / www.website.com SPN precisa ser registrado na conta que está executando o aplicativo. A equipe de serviços de diretório da Microsoft tem uma excelente postagem em várias partes abordando este tópico no seguinte URL.

link

Execute uma captura de pacote (netmon, wireshark) de um cliente em cada ambiente para identificar qual SPN está sendo pesquisado. Uma vez determinado, use o setspn cmd para registrá-lo na conta que está executando o aplicativo.

FWIW, o Kerberos funciona somente na LAN. Se alguém precisar acessar onde os controladores de domínio não estão acessíveis, convém considerar um SSO como o Shibboleth ou o ADFS.

EDIT: como mencionado por @ alex-h , os navegadores precisarão ser configurados para autenticar silenciosamente via Kerberos.

  • Internet Explorer - enquanto o artigo do TechNet não é específico para sua aplicação, os passos são os mesmos.
  • Firefox - igual ao link do IE, Correspondência não exata, mas as etapas são as mesmas.

Por fim, esse é um problema comum nas implantações do Microsoft Sharepoint. Eles querem que o SSO via Kerberos ocorra silenciosamente assim que os usuários se autenticarem no domínio. Assim, se as respostas acima não resolverem seu problema, tente verificar os fóruns deles, como os seguintes:

Kerberos no Chrome, Safari ou FireFox

    
por 02.08.2016 / 22:29
0

Por favor, tente primeiro de um navegador que não tenha o NTLM habilitado (Chrome / Firefox). Parece que o problema é que você tem a pré-autenticação ativada e pode ser possível que a confiança bidirecional não esteja em vigor.

Para a pré-autenticação, dê uma olhada aqui link e aqui link .

    
por 02.08.2016 / 17:37