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 ...
- Peça ao administrador do AD para gerar um keytab para um determinado SPN.
- Coloque o keytab no meu servidor em um lugar onde o serviço possa encontrá-lo.
- os clientes usam o ticket e o SPN para obter um token da infraestrutura do Kerberos.
- 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 ...
- Crie um SPN do formulário nome_do_serviço / some_dummy_name @ nome_do_domínio.
- Gere o keytab e copie-o para svr1.mycompany.mydomain,
svr2.mycompany.mydomain, ..., svrX.mycompany.mydomain.
- 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.