Criação de um Nome do Principal Serviço Kerberos e um Arquivo keytab

Esta tarefa é necessária para processar pedidos de autenticação do Kerberos ou SPNEGO web para WebSphere Application Server. É possível criar um nome do principal do serviço Kerberos e um arquivo keytab usando os centros de distribuição de chaves (KDCs) dos sistemas operacionais Microsoft Windows, IBM i, Linux, Solaris, Massachusetts Institute of Technology (MIT) e z/OS.

Sobre Esta Tarefa

Criação de um nome do principal serviço Kerberos e um arquivo keytab usando o KDC do Microsoft Windows:

Essa tarefa é realizada na máquina controladora de domínio do diretório ativo. Conclua as seguintes etapas para assegurar que o Windows 2003 Server que está executando o controlador de domínio do Active Directory seja configurado corretamente para o centro de distribuição de chaves (KDC) associado.

  1. Crie uma conta de usuário no Microsoft Active Directory para o WebSphere Application Server.

    Clique em Iniciar->Programas->Ferramentas Administrativas->Computadores e Usuários do Active Directory.

    Utilize o nome do WebSphere Application Server. Por exemplo, se o servidor de aplicativos que você está executando na máquina do WebSphere Application Server for chamado myappserver.austin.ibm.com, crie um novo nome em um diretório ativo chamado myappserver.

    Certifique-se de não possuir o nome do computador myappserver em Computadores e Controladores de Domínio. Se você já tiver um computador chamado myappserver, crie um nome de conta de usuário diferente.
    • Clique em Iniciar->Programas->Ferramentas Administrativas->Computadores e Usuários do Active Directory->Computadores.
    • Clique em Programas -> Ferramentas Administrativas -> Computadores e Usuários do Active Directory -> Controladores de Domínio.
  2. Utilize o comando setspn para mapear o service principal name do Kerberos, <service name>/<fully qualified host name>, para uma conta do usuário da Microsoft.

    O nome do serviço para autenticação da Web SPNEGO deve ser HTTP. No entanto, o nome do serviço para autenticação do Kerberos pode ser qualquer cadeia permitida pelo KDC.

    Um exemplo de uso do comando setspn para autenticação da Web SPNEGO é o seguinte:

    C:\Program Files\Support Tools>
    setspn -A HTTP/myappserver.austin.ibm.com myappserver
    Nota: O nome do host deve ser um nome completo.
    Importante: Certifique-se de não possuir o mesmo mapeamento do SPNs (Service Principle Names) para mais de uma conta de usuário do Microsoft. Se você mapear o mesmo SPN para mais de uma conta de usuário, o cliente do navegador da Web pode enviar um token NTLM (NT LAN Manager) em vez de um token SPNEGO para o WebSphere Application Server.
  3. Crie o arquivo keytab Kerberos e disponibilize-o no WebSphere Application Server. Utilize a ferramenta ktpass do kit de ferramentas do Windows Server para criar o arquivo keytab do Kerberos (krb5.keytab) para o SPN.
    Nota: Um arquivo keytab Kerberos contém uma lista de chaves que são semelhantes às senhas de usuário. É importante para os hosts protegerem seus arquivos keytab Kerberos armazenando-os no disco local.

    Utilize a ferramenta ktpass a partir do kit de ferramentas Windows Server para criar o arquivo keytab Kerberos para o SPN (Service Principal Name). Use a versão mais recente da ferramenta ktpass que corresponde ao nível do servidor Windows que está sendo usado. Por exemplo, use a versão da ferramenta Windows 2003 para um servidor Windows 2003.

    Para determinar os valores de parâmetro apropriados para a ferramenta ktpass, execute o comando ktpass -? a partir da linha de comandos. Este comando lista se a ferramenta ktpass, que corresponde ao sistema operacional específico, usa o valor de parâmetro -crypto RC4-HMAC ou -crypto RC4-HMAC-NT. Para evitar mensagens de aviso do kit de ferramentas, você deve especificar o valor de parâmetro -ptype KRB5_NT_PRINCIPAL.

    A versão do servidor Windows 2003 da ferramenta ktpass suporta o tipo de criptografia, RC4-HMAC, e o padrão de criptografia de dados único (DES). Para obter mais informações sobre a ferramenta ktpass, consulte Referência Técnica do Windows 2003 - Visão Geral do Ktpass.

    O código a seguir mostra as funções que estão disponíveis ao inserir o comando ktpass -? na linha de comandos. Estas informações podem ser diferentes, dependendo da versão do kit de ferramentas que está sendo usada.
    C:\Program Files\Support Tools>ktpass -?                                  
    Opções da linha de comandos:                                                     
                                                                              
    ---------------------args mais úteis                                     
    [- /]          out : Keytab a ser produzido                                    
    [- /]        princ : Nome do Proprietário (user@REALM)                          
    [- /]         pass : senha a ser utilizada                                      
                         utilizar "*" para solicitar a senha.                      
    [- +]      rndPass : ... ou utilize +rndPass para gerar uma senha aleatória    
    [- /]      minPass : comprimento mínimo para senha aleatória (def:15)          
    [- /]      maxPass : comprimento máximo para senha aleatória (def:256)         
    ---------------------itens menos úteis                                    
    [- /]      mapuser : map propr (acima) para esta conta do usuário (padrão: não)                                                                    
    [- /]        mapOp : como configurar o atributo de mapeamento (padrão: incluí-lo)   
    [- /]        mapOp :  é um de:                                          
    [- /]        mapOp :        add : incluir valor (padrão)                     
    [- /]        mapOp :        set : configurar valor                               
    [- +]      DesOnly : Configure a conta para a criptografia des-only (default:don't)  
    [- /]           in : Keytab para leitura/assimilação                                
    ---------------------opções para geração de chave                           
    [- /]       crypto : Cryptosystem a ser utilizado                                  
    [- /]       crypto :  é um de:                                          
    [- /]       crypto : DES-CBC-CRC : para compatibilidade                      
    [- /]       crypto : DES-CBC-MD5 : para compatibilidade                      
    [- /]       crypto : RC4-HMAC-NT : criptografia padrão de 128 bits             
    [- /]        ptype : tipo do proprietário em questão                           
    [- /]        ptype :  é um de:                                          
    [- /]        ptype : KRB5_NT_PRINCIPAL : O ptype geral -- recomendado  
    [- /]        ptype : KRB5_NT_SRV_INST : instância de serviço do usuário             
    [- /]        ptype : KRB5_NT_SRV_HST : instância de serviço do host              
    [- /]         kvno : Substituir Número de Versão de Chave                          
                         Padrão: consultar DC para kvno.  Utilizar /kvno 1 para Win2K compat.                                                                   
    [- +]       Resposta: +Answer responde SIM para os prompts.  -Answer responde     
    Nº                                                                       
    [- /]       Destino : Qual DC utiliza.  Padrão:detect                     
    ---------------------opções para atributos de confiança (Windows Server 2003    
    Sp1 Only                                                                  
    [- /] MitRealmName : Região MIT na qual ativar confiança RC4.      
    [- /]  TrustEncryp : Criptografia Confiável a ser utilizada; DES é o padrão              
    [- /]  TrustEncryp : Uma destas:                                          
    [- /]  TrustEncryp :        RC4 : Região de Confiança RC4 (padrão)              
    [- /]  TrustEncryp :        DES : Voltar para DES
    Importante: Não utilize o comutador -pass no comando ktpass para reconfigurar uma senha para uma conta de servidor Microsoft Windows.
    Consulte Referência Técnica do Windows 2003 - Visão Geral do Ktpass para obter mais informações.
    Dependendo do tipo de criptografia, use a ferramenta ktpass de uma das seguintes maneiras para criar o arquivo keytab do Kerberos. A seção a seguir mostra os diferentes tipos de criptografia que são usados pela ferramenta ktpass. É importante executar o comando ktpass -? para determinar qual valor de parâmetro -crypto é esperado pelo kit de ferramentas específico em seu ambiente do Microsoft Windows.
    • Tipo de criptografia DES único:
      A partir de um prompt de comandos, execute o comando ktpass:
      ktpass -out c:\temp\myappserver.keytab
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM
      -mapUser myappserv 
      -mapOp set 
      -pass was1edu
      -crypto DES-CBC-MD5 
      -pType KRB5_NT_PRINCIPAL
      +DesOnly
      Tabela 1. Utilizando o ktpass para um Tipo de Criptografia DES Único.

      Esta tabela descreve como utilizar ktpass para um único tipo de criptografia DES.

      Opção Explicação
      -out c:\temp\myappserver.keytab A chave é gravada para um arquivo de saída.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM A concatenação do nome de logon do usuário e a região devem estar em maiúscula.
      -mapUser A chave é mapeada para o usuário, myappserver.
      -mapOp Essa opção configura o mapeamento.
      -pass was1edu Esta opção é a senha para o ID do usuário.
      -crypto DES-CBC-MD5 Esta opção utiliza o tipo de criptografia DES único.
      -pType KRB5_NT_PRINCIPAL Esta opção especifica o valor principal KRB5_NT_PRINCIPAL. Especifique esta opção para evitar mensagens de aviso do kit de ferramentas.
      +DesOnly Esta opção gera apenas criptografias DES.
    • Tipo de criptografia RC4-HMAC:
      Importante: A criptografia RC4-HMAC é suportada apenas ao utilizar um Windows 2003 Server como KDC.
      A partir de um prompt de comandos, execute o comando ktpass.
      ktpass -out c:\temp\myappserver.keytab 
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 
      -mapUser myappserver
      -mapOp set 
      –pass was1edu 
      -crypto RC4-HMAC
      -pType KRB5_NT_PRINCIPAL
      Tabela 2. Utilizando o ktpass para o tipo de criptografia RC4-HMAC
      Opção Explicação
      -out c:\temp\myappserver.keytab A chave é gravada para um arquivo de saída.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM A concatenação do nome de logon do usuário e a região devem estar em maiúscula.
      -mapUser A chave é mapeada para o usuário, myappserver.
      -mapOp Essa opção configura o mapeamento.
      -pass was1edu Esta opção é a senha para o ID do usuário.
      -crypto RC4-HMAC Essa opção escolhe o tipo de criptografia RC4-HMAC.
      -pType KRB5_NT_PRINCIPAL Esta opção especifica o valor principal KRB5_NT_PRINCIPAL. Especifique esta opção para evitar mensagens de aviso do kit de ferramentas.
    • Para o tipo de criptografia RC4-HMAC-NT
      A partir de um prompt de comandos, execute o comando ktpass.
      ktpass -out c:\temp\myappserver.keytab 
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 
      -mapUser myappserver 
      -mapOp set 
      -pass was1edu 
      -crypto RC4-HMAC-NT
      -pType KRB5_NT_PRINCIPAL
      Tabela 3. Utilizando o tipo de criptografia ktpass para RC4-HMAC-NT
      Opção Explicação
      -out c:\temp\myappserver.keytab A chave é gravada para um arquivo de saída.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM A concatenação do nome de logon do usuário e a região devem estar em maiúscula.
      -mapUser A chave é mapeada para o usuário, myappserver.
      -mapOp Essa opção configura o mapeamento.
      -pass was1edu Esta opção é a senha para o ID do usuário.
      -crypto RC4-HMAC-NT Esta opção escolhe o tipo de criptografia RC4-HMAC-NT.
      -pType KRB5_NT_PRINCIPAL Esta opção especifica o valor principal KRB5_NT_PRINCIPAL. Especifique esta opção para evitar mensagens de aviso do kit de ferramentas.
      O arquivo keytab do Kerberos é criado para uso com SPNEGO.

Criação de um nome do principal serviço Kerberos e de um arquivo keytab usando os KDCs iSeries, Linux, Solaris e MIT:

Consulte seus documentos de implementação do Kerberos sobre os comandos kadmin, kadmin.local addprinc e ktadd para obter informações mais detalhadas.

Essa tarefa é realizada em uma máquina Linux, Solaris ou KDC MIT.

  1. Crie um diretor de serviço Kerberos para autenticação do Kerberos, por exemplo:
    WAS/testmach.austin.ibm.com 
    kadmin.local: addprinc WAS/testmach.austin.ibm.com 
  2. Inclua o diretor de serviço Kerberos recém criado, WAS/testmach.austin.ibm.com para um arquivo padrão krb5.keytab, por exemplo:
    kadmin.local: ktadd WAS/testmach.austin.ibm.com 

Criação de um nome do principal serviço Kerberos e de um arquivo keytab usando o KDC z/OS:

Antes da autenticação da Web e autenticação do Kerberos do Simple and Protected GSS-API Negotiation (SPNEGO) poder ser utilizada, o administrador do WebSphere Application Server primeiro deve criar um arquivo keytab de Kerberos no host que está executando o WebSphere Application Server.

Para criar um SPN, execute o seguinte procedimento:

  1. O ID Kerberos (KERBNAME) deve ter o formato <service>/<fully qualified system name>.
  2. O exemplo a seguir cria SPN do Kerberos para o SPNEGO Web, HTTP/host1.pok.ibm.com:
    ALTUSER ASCR1 KERB(KERBNAME(HTTP/host1.pok.ibm.com))
    Evitar Problemas Evitar Problemas: É necessário garantir que a lista de tipos de criptografia suportados especificada no comando ALTUSER esteja consistente com a especificada no arquivo de configuração do Kerberos krb5.conf. Por exemplo, se o arquivo de configuração krb5.conf especificar que apenas aes256-cts-hmac-sha1-96 é suportado, o operando ENCRYPT deverá ter todos os tipos de criptografia configurados como não suportados, exceto para AES256.gotcha
  3. Crie a chave do Kerberos para esse usuário. Para criar essa chave, uma senha deve ser associada a esse ID. Não utilize esse ID para efetuar logon no sistema. Insira as duas linhas a seguir sempre que uma nova chave do Kerberos for necessária.
    Nota: O administrador do WebSphere ou KDC deve saber essa senha para criar uma entrada no arquivo keytab.
    ALTUSER ASCR1 PASSWORD(was1krb) NOEXPIRED
    ALTUSER ASCR1 NOPASSWORD
  4. Verifique se esse usuário tem um segmento de Kerberos válido e uma chave, por exemplo:
    LISTUSER ASCR1 KERB NORACF
     USER=ASCR1                            
     KERB INFORMATION                      
     ----------------                      
     KERBNAME= HTTP/host1.pok.ibm.com        
     KEY VERSION= 001                      
     KEY ENCRYPTION TYPE= DES NODES3 NODESD

    Para criar um arquivo keytab Kerberos (krb5.keytab), utilize o comando ktab do Kerberos Java™, <$WAS_HOME>/java/bin/ktab, fazendo o seguinte:

  5. Em uma linha de comandos, digite o comando ktab –help para obter o uso adequado desse comando. Por exemplo:
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(189):>ktab -help
    Uso: java com.ibm.security.krb5.internal.tools.Ktab [opções]
    Opções disponíveis:
            -l					lista o nome e as entradas do keytab
            -a <principal_name> [senha] 	inclui uma entrada no keytab
            -d <principal_name>      	exclui uma entrada do keytab
            -k <keytab_name>			especifique o caminho e o nome do keytab com o prefixo FILE:
            -m <source_keytab_name> <destination_keytab_name>      especifique a mesclagem do nome do arquivo keytab de origem e do nome do arquivo keytab de destino
       
  6. De uma linha de comandos, utilize o comando ktab para incluir o SPN em um arquivo keytab padrão, por exemplo:
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(201):>ktab -a
    HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM ot56prod
    Feito!
    Chave de serviço do HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM do proprietário salvo
  7. Verifique se o SPN correto está no arquivo keytab padrão, por exemplo:
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(202):>ktab
    1 entrada no keytab, nome: /etc/skrb/krb5.keytab
            KVNO    Principal
            ----    ---------
            1       HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM
Disponibilize o arquivo keytab para o WebSphere Application Server. Copie o arquivo krb5.keytab do KDC para a máquina do WebSphere Application Server para o local especificado no arquivo de configuração do Kerberos (krb5.ini ou krb5.conf). Por exemplo:
ftp> bin
ftp> put c:\temp\KRB5_NT_SEV_HST\krb5.keytab
Nota: Um arquivo de configuração keytab Kerberos contém uma lista das chaves que são análogas às senhas do usuário. É importante para os hosts protegerem seus arquivos keytab Kerberos armazenando-os no disco local, o que os torna legíveis apenas aos usuários autorizados.
Utilize o comando validateKrbConfig para validar os arquivos krb5.conf e krb5.keytab, por exemplo:
wsadmin>$AdminTask help validateKrbConfig 
Nota: O arquivo keytab do Kerberos é compartilhado pela autenticação da Web de Kerberos e SPNEGO. Ele é carregado uma vez e não pode ser atualizado.

No entanto, isto não se aplica se você tiver o JDK 1.6 com SR3 instalado.

Nota: Se precisar mesclar seus arquivos keytab, é recomendável usar o comando ktab Java com a opção -m.

Resultados

Foi criado um nome do principal serviço Kerberos e um arquivo keytab no KDC usado pelo WebSphere Application Server para processar solicitações de autenticação SPNEGO e/ou do Kerberos.


Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_kerb_create_spn
Nome do arquivo: tsec_kerb_create_spn.html