Criando keytabs e nomes principais de serviço

7

Estou tentando configurar um keytab para um servidor Java para dar suporte à autenticação Kerberos em uma rede Windows. Eu estou lutando para fazê-lo funcionar, mesmo ao nível das ferramentas de linha de comando, ainda não cheguei até a configuração do servidor ainda! Meu plano agora é tentar fazê-lo funcionar no meu PC de desenvolvimento, já que tenho trabalho de desenvolvimento e depuração para fazer. Portanto, meu objetivo é ter o servidor Java em execução no meu PC e o cliente em execução na mesma máquina que se conecta a ele.

Aqui está o que eu fiz até agora, estou realmente errando o caminho para poder fazer todo tipo de coisas erradas!

Criado um nome principal de serviço

Eu tenho um dos nossos administradores de domínio para executar este comando:

setspn -A TEST/pc-name.mydomain.com my-user-name

Isso pareceu ser concluído com êxito e eu posso listar esse SPN com êxito com

setspn -L my-user-name

Criado um arquivo keytab

Eu criei um keytab com este comando:

ktpass /princ TEST/[email protected] /pass <my-password> /ptype KRB5_NT_SRV_HST /out <keytab-filename>

Isso parece criar um keytab com sucesso, embora avise que ptype e tipo de conta não coincidem (mas, seja qual for o que eu escolher para ptype, recebo o mesmo aviso). Se eu executar este comando:

klist -k file:/<keytab-filename>

Em seguida, ele lista o SPN que eu esperava, ou seja, TESTE / [email protected]

O problema!

Agora eu quero verificar se o keytab funciona para este SPN, então estou executando

kinit -t <keytab-filename> TEST/[email protected]

Eu então recebo um erro "krb_error 6 Client não encontrado no banco de dados Kerberos".

O que estou fazendo de errado?

    
por user21693 01.10.2009 / 13:44

1 resposta

4

Não tenho certeza se meu nome de usuário se refere a um objeto de computador ou a um objeto de usuário no diretório ativo; Eu suponho que seja um objeto de usuário. Nesse caso, acho que setspn não é apropriado; Isso serve para modificar os SPNs de contas de máquinas existentes. Para uma conta de usuário, sou cético quanto ao SRV_HST.

Aparentemente, o suporte a SPNs associados a objetos do usuário é um pouco limitado; Eu li em algum lugar que isso é realmente restrito a um usuário. Também não consegui fazer com que sua invocação de ktpass funcionasse para mim, pois ela insistia em a) especificar uma conta de usuário (através do mapuser) que deveria estar associada ao SPN e b) definir a senha do SPN. Eu acho que o último é inevitável para criar um keytab através do ktpass.

Consegui criar um keytab na "maneira padrão", ou seja, configurando uma conta de usuário dedicada e associando-a a um SPN:

ktpass /princ TEST/host@DOMAIN /mapuser user@DOMAIN /pass *  /out foo.keytab /ptype KRB5_NT_PRINCIPAL

Essa operação (esperançosamente) quebrou o login para o usuário, no entanto, eu fui capaz de fazer kinit com

 kinit -k -t /tmp/foo.keytab  TEST/host@DOMAIN
    
por 01.10.2009 / 19:01

Tags