É possível usar a mesma conta para autenticação em todos os nodes de cluster. Para isso, basta criar um arquivo keytab contendo os nomes principais do serviço (SPN) para cada um destes nodes. Ao criar um arquivo keytab, será necessário usar um atributo para gerar o salt, que modifica a entrada da função hash.
É necessário usar qualquer método conveniente para salvar o "salt" gerado para que ele possa ser usado posteriormente ao adicionar novos SPNs ao arquivo keytab.
Também é possível criar uma conta de usuário separada do Active Directory para cada node do cluster que requer a configuração de autenticação Kerberos.
Antes de criar um arquivo keytab:
Antes de criar um arquivo keytab, para cada SPN, assegure-se de que ele não esteja registrado no Active Directory. Você pode fazer isso, executando o seguinte comando: setspn -Q <SPN>
, onde <SPN>
tem a seguinte estrutura: HTTP/<nome de domínio totalmente qualificado (FQDN) do node do cluster>@<nome de instância do domínio do Active Directory em maiúsculas>
.
O comando deve retornar "Nenhum SPN encontrado"
, o que significa que o SPN em questão não está registrado. Se o SPN já tiver sido registrado, antes de criar o arquivo keytab, você precisa cancelar a atribuição do SPN da conta ou excluir a própria conta no Active Directory ao qual esse SPN foi atribuído.
Exemplo de verificação de um SPN para um node de Controle e dois nodes secundários: setspn -Q HTTP/control-01.test.local@TEST.LOCAL setspn -Q HTTP/secondary-01.test.local@TEST.LOCAL setspn -Q HTTP/secondary-02.test.local@TEST.LOCAL |
Criar um arquivo keytab
O arquivo keytab será criado no servidor do controlador de domínio ou em um computador do Windows Server que faz parte do domínio, sob a conta de administrador do domínio.
Para criar um arquivo keytab usando uma conta de usuário:
control-user
).control-user
. Para isso, execute o seguinte comando na linha de comando:C:\Windows\system32\ktpass.exe -princ HTTP/<nome de domínio totalmente qualificado (FQDN) do node Controle>@ <nome de domínio do Active Directory do realm em letras maiúsculas> -mapuser control-user@<nome de domínio do Active Directory do realm em letras maiúsculas> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <caminho para o arquivo>\<nome do arquivo>.keytab
A ferramenta solicitará a senha do usuário de controle
ao executar o comando.
O SPN do Nó de controle é adicionado ao arquivo keytab criado. A tela exibirá o salt gerado: Hashing senha com salt "<valor de hash>".
C:\Windows\system32\ktpass.exe -princ HTTP/<nome de domínio totalmente qualificado (FQDN) do node>@<nome de domínio do Active Directory do realm em maiúsculas> -mapuser control-user@<nome de domínio do Active Directory do realm em maiúsculas > -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <caminho e nome do arquivo criado anteriormente>.keytab -out <caminho e novo nome>.keytab -setupn -setpass -rawsalt "<valor de hash salt obtido ao criar o arquivo keytab na etapa 3>"
A ferramenta solicitará a senha do usuário de controle
ao executar o comando.
O arquivo keytab será criado. Esse arquivo cria todos os SPNs de nodes do cluster adicionados.
Exemplo: Por exemplo, é necessário criar um arquivo keytab contendo os SPNs de 3 nodes: Para criar um arquivo denominado
Suponhamos que o salt Para adicionar mais um SPN, execute o seguinte comando:
Para adicionar um terceiro SPN, execute o seguinte comando:
Isso resultará na criação de um arquivo chamado |
Para criar um arquivo keytab usando uma conta de usuário separada para cada node:
control-user
, secondary1-user
, secondary2-user
e assim por diante).control-user
. Para isso, execute o seguinte comando na linha de comando:C:\Windows\system32\ktpass.exe -princ HTTP/<nome de domínio totalmente qualificado (FQDN) do node de controle>@ <nome de domínio do Active Directory do realm em maiúsculas> -mapuser control-user@<nome de domínio do Active Directory do realm em maiúsculas> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <caminho para o arquivo>\<nome do arquivo>.keytab
A ferramenta solicitará a senha do usuário de controle
ao executar o comando.
O SPN do Nó de controle é adicionado ao arquivo keytab criado.
C:\Windows\system32\ktpass.exe -princ HTTP/<nome de domínio totalmente qualificado (FQDN) do node>@<nome de domínio do Active Directory do realm em maiúsculas> -mapuser secondary1-user@<nome de domínio do Active Directory do realm em maiúsculas> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <caminho e nome do arquivo criado anteriormente>.keytab -out <caminho e novo nome>.keytab
A ferramenta solicitará a senha secondary1-user
ao executar o comando.
O arquivo keytab será criado. Esse arquivo cria todos os SPNs de nodes do cluster adicionados.
Exemplo: Por exemplo, é necessário criar um arquivo keytab contendo os SPNs de 3 nodes: Para criar um arquivo denominado
Para adicionar mais um SPN, execute o seguinte comando:
Para adicionar um terceiro SPN, execute o seguinte comando:
Isso resultará na criação de um arquivo chamado |
Após criar um arquivo keytab
Depois de criar um arquivo keytab, para cada SPN, assegure-se de que ele esteja registrado e atribuído à conta relevante. Você pode fazer isso, executando o seguinte comando: setspn -Q <SPN>
, onde <SPN>
tem a seguinte estrutura: HTTP/<nome de domínio totalmente qualificado (FQDN) do node do cluster>@<nome de instância do domínio do Active Directory em maiúsculas>
.
O comando deve retornar "SPN existente encontrado"
e a conta à qual o SPN está atribuído.
Além disso, depois de criar um arquivo keytab, você pode verificar a lista de SPNs atribuídos à conta relevante. Para fazer isso, você pode executar o seguinte comando: setspn -L <account>
, onde <account>
tem a seguinte estrutura: <user name>@<nome de instância do domínio do Active Directory em maiúsculas>
.
Se o arquivo keytab foi criado com uma conta, o comando deve retornar uma lista de todos os SPNs para os quais o arquivo keytab foi criado. Se o arquivo keytab foi criado com contas separadas para cada node, o comando deve retornar um SPN atribuído à conta específica.
Comando de exemplo para uma conta: setspn -L control-user@TEST.LOCAL Comando de exemplo para contas separadas para cada node: setspn -L control-user@TEST.LOCAL setspn -L secondary1-user@TEST.LOCAL setspn -L secondary2-user@TEST.LOCAL |