O FQDN do Kerberos SPN é significativo para o servidor ou o keytab é suficiente?

2

Eu gasto a maior parte do meu tempo como desenvolvedor, então não estou familiarizado com todos os detalhes ...

Eu tenho um serviço em execução em um host linux. Eu quero usar o Kerberos para transmitir informações de identidade para o serviço. Alguns dos meus clientes estão em clientes Windows conectados ao AD, então eles já têm um ticket. Entendo como usar o kinit para conseguir um ingresso em meus clientes * nix e verifiquei que posso fazer isso. Eu tenho um arquivo /etc/krb5.conf que parece funcionar em meus clientes * nix

Eu entendo que preciso fazer o seguinte ...

  1. Peça ao administrador do AD para gerar um keytab para um determinado SPN.
  2. Coloque o keytab no meu servidor em um lugar onde o serviço possa encontrá-lo.
  3. os clientes usam o ticket e o SPN para obter um token da infraestrutura do Kerberos.
  4. Configure o serviço para receber o token e decodificá-lo usando o keytab.

Aqui está o meu problema ...

O SPN geralmente está no formato service_name / FQDN @ domain_name. Meus clientes, no entanto, não constroem o SPN usando o nome do host do serviço. Em vez disso, o SPN é definido em um arquivo de configuração. Seria mais fácil para mim se eu pudesse criar um único SPN e usá-lo em cada instância do meu servidor.

Então, eu faria o seguinte ...

  1. Crie um SPN do formulário nome_do_serviço / some_dummy_name @ nome_do_domínio.
  2. Gere o keytab e copie-o para svr1.mycompany.mydomain, svr2.mycompany.mydomain, ..., svrX.mycompany.mydomain.
  3. Configure meus clientes com o único SPN.

Parece que acho que isso funcionará, pois o mesmo SPN / keytab pode ser usado em vários servidores com nomes de host diferentes quando os servidores estão em cluster.

Para reduzi-lo - a parte do FQDN de um SPN é significativa para o servidor ou está lá apenas para que os clientes típicos possam gerar o SPN adequado? Se vários servidores tiverem o mesmo keytab, eles podem receber e validar os mesmos tokens ou algo mais é necessário?

Só para enfatizar, o serviço é um aplicativo java no Linux, os clientes são aplicativos java no windows e * nix. O AD forneceria a infraestrutura do servidor Kerberos.

    
por MikeD 09.07.2014 / 23:37

1 resposta

0

No caso de você delinear, deve funcionar. Você pode usar um keytab em várias máquinas, desde que os clientes tenham alguma forma de descobrir qual entidade de serviço deve solicitar uma chave de serviço. O Kerberos requer que ambos os lados da conexão descubram o principal de serviço através de alguns meios fora da banda. Normalmente, essa é uma convenção baseada no nome DNS do servidor, mas não há nada no kerberos que exija isso.

Eu diria que essa é uma solução razoável se o número de servidores for "pequeno" e não houver um requisito de segurança para girar o keytab regularmente.

    
por 10.07.2014 / 02:06