Autenticação Kerberos, host de serviço e acesso ao KDC

10

Eu tenho um aplicativo da web (hostname: service.domain.com) e desejo usar a autenticação Kerberos para identificar usuários que estão conectados a um domínio do Windows. O Microsoft AD (Windows Server 2008 R2) está fornecendo o serviço Kerberos.

O serviço é um aplicativo da Web Java que usa a biblioteca de extensão Spring Security Kerberos para implementar o protocolo SPNEGO / Kerberos. Eu criei um arquivo keytab no AD que contém um segredo compartilhado que deve ser suficiente para autenticar os tickets do Kerberos que são enviados pelos navegadores do cliente usando o aplicativo da web.

A minha pergunta é, é host de serviço (service.domain.com) necessária para ter acesso de firewall (TCP / UDP 88) para KDC (kdc.domain.com) ou é o arquivo keytab suficiente para o host de serviço para poder descriptografar os tíquetes Kerberos e fornecer autenticação?

    
por StrangeLoop 01.12.2012 / 14:25

1 resposta

11

O serviço nunca precisa falar com o KDC . Ele precisa de um keytab gerado pelo KDC , mas que você pode copiar da maneira que quiser. Eles nunca têm que conversar um com o outro.

Uma versão excessivamente simplificada do que eu acredito continua mais ou menos assim:

Configurando o serviço

  • O KDC gera um keytab (que é algo como uma chave secreta / senha, se desejar)
  • esse keytab é fornecido ao serviço de alguma forma ( scp ou transportado em um pendrive, se você quiser)

Cliente conectando-se ao serviço

  • O cliente solicita um ticket de serviço a partir do KDC
  • O KDC gera um ticket , que contém algumas informações que só podem ser descriptografadas pelo serviço keytab (esse é o arquivo que fica no seu servidor )
  • O cliente envia seu ticket para o serviço
  • o serviço usa a keytab para verificar o ticket (sem comunicação de rede necessária)
por 01.12.2012 / 14:59