Visão Geral de Uso do Kerberos para Serviços da Web

É possível usar um token Kerberos para executar funções semelhantes que possam ser executadas atualmente com outros tokens de segurança binário, como LTPA (Lightweight Third Party Authentication) e de Conversação Segura.

Gerador de Token

Após um token do Kerberos ser criado a partir do Centro de Distribuição de Chaves (KDC), o gerador de Segurança de Serviços da Web codifica e insere o token na mensagem SOAP e propaga o token para consumo ou aceitação do token. Se uma chave de integridade e sigilo da mensagem for necessária, uma subchave ou chave de sessão do Kerberos do registro Kerberos será utilizada. Uma chave pode ser derivada da subchave ou da chave de sessão do Kerberos. O Web Services Security usa a chave do token do Kerberos para assinar e criptografar as partes da mensagem, conforme descrito na especificação do OASIS Web Services Security Kerberos Token Profile Versão 1.1. O tipo de chave a ser usado é predeterminado pela configuração ou pela política do Web Services Security. Além disso, o tamanho da chave derivada é configurável.

O valor da chave de assinatura ou criptografia é construído com base no valor de uma das seguintes chaves:
  • A subchave do Kerberos quando está presente no autenticador
  • Uma chave de sessão diretamente do usuário, se a subchave estiver ausente
  • Uma chave derivada de qualquer uma das chaves anteriores
Quando o token Kerberos é referido como chave de assinatura, o algoritmo de assinatura deve ser um código hash de autenticação de mensagem, que é http://www.w3.org/2000/09/xmldsig#hmac-sha1. Quando o token Kerberos é referido como chave de criptografia, você deve usar um dos seguintes algoritmos de criptografia simétrica:
  • http://www.w3.org/2001/04/xmlenc#aes128-cbc
  • http://www.w3.org/2001/04/xmlenc#aes256-cbc
  • http://www.w3.org/2001/04/xmlenc#tripledes-cbc
Atenção:
  • O Servidor de Aplicativos suporta Kerberos Versão 5 apenas.
  • É possível usar um conjunto de algoritmos simétricos do tipo AES no Web Services Security quando o chamado do Kerberos for compatível apenas com RFC-4120.
  • Uma chave Kerberos com o tipo de chave RC4-HMAC de 128 bits apenas é utilizada quando o KDC está em um servidor Microsoft Windows 2003.
  • Uma chave Kerberos com os tipos de chave AES de 128 bits ou de 256 bits é utilizada quando o KDC está em um servidor Microsoft Windows 2008.
  • Um registro Kerberos deve ser direcionável e não conter um endereço quando o provedor de serviços está em execução em um cluster.
  • Você deve importar uma política de segurança Java™ irrestrita quando utiliza um algoritmo de criptografia AES de 256 bits.

Para obter mais informações sobre como usar um token de Kerberos em um ambiente de região cruzada ou confiável, leia o tópico "Segurança de token de Kerberos em um ambiente de região única, cruzada ou confiável."

Consumidor de Token

O consumidor do Web Services Security recebe e extrai o token do Kerberos da mensagem SOAP. O consumidor então aceita o token Kerberos validando o token com sua própria chave secreta. A chave secreta do serviço é armazenada em um arquivo keytab exportado. Após a aceitação, o consumidor do Web Services Security armazena as informações do token da solicitação associada no Assunto do contexto. Você também pode derivar a chave de correspondência para o token de pedido. A chave é utilizada para verificar e decriptografar a mensagem. Se o token de pedido for redirecionável e não contiver um endereço, o servidor de aplicativos poderá usar o token armazenado para chamadas de recebimento de dados.

Formato e Referência de Token

Para aplicativos JAX-WS, utilize o conjunto de política customizada existente ou os scripts de comando administrativo da política customizada para especificar o tipo de token Kerberos, a assinatura de mensagem e a criptografia de mensagem. O modelo de programação JAX-WS para o WebSphere Application Server fornece configuração mínima para ativar o perfil de token Kerberos com o token Kerberos.

Para aplicativos JAX-RPC, utilize o descritor de implementação para especificar que o token customizado utiliza o token Kerberos. É possível usar o token Kerberos para autenticação, mas não pode utilizá-lo para assinatura e criptografia de mensagens.

O WebSphere Application Server suporta as seguintes classes de manipulador de retorno de chamada para o token Kerberos Versão 5:
  • com.ibm.websphere.wssecurity.callbackhandler.KRBTokenConsumeCallbackHandler

    Essa classe é um manipulador de retorno de chamada para o token Kerberos Versão 5 no lado do consumidor. Essa instância é utilizada para gerar os objetos WSSVerification e WSSDecryption para validar um token de segurança binário Kerberos.

  • com.ibm.websphere.wssecurity.callbackhandler.KRBTokenGenerateCallbackHandler

    Essa classe é um manipulador de retorno de chamada para o token Kerberos Versão 5 no lado do gerador. Esta instância é utilizada para gerar o objeto WSSSignature e o objeto WSSEncryption para gerar um token de segurança binário Kerberos.

A especificação OASIS Web Services Security Kerberos Token Profile Versão 1.1 declara que o token do Kerberos foi anexado à mensagem SOAP com o elemento <wsse:BinarySecurityToken>. O exemplo a seguir mostra o formato da mensagem. O tipo negrito destaca as informações do token de segurança binário das outras partes do exemplo.

<S11:Envelope xmlns:S11="…" xmlns:wsu="…">
   <S11:Header>
      <wsse:Security xmlns:wsse="…">
          <wsse:BinarySecurityToken 
              EncodingType="http://docs.oasis-open.org/wss/2004/01/
                 oasis-200401-wss-soap-message-security-1.0#Base64Binary" 
              ValueType="http://docs.oasis-open.org/wss/
                 oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ" 
              wsu:Id="MyToken">boIBxDCCAcCgAwIBBaEDAgEOogcD…
          </wsse:BinarySecurityToken>
          …
      </wsse:Security>
    </S11:Header>
    <S11:Body>
        …
    </S11:Body>
</S11:Envelope>

O token do Kerberos é referenciado pelo elemento <wsse:SecurityTokenReference>. O elemento <wsu:Id>, que é especificado dentro do elemento <wsse:BinarySecurityToken> e é mostrado no exemplo a seguir em negrito, referencia diretamente o token no elemento <wsse:SecurityTokenReference>.

O valor do atributo @wsse:TokenType, dentro do elemento <wsse:SecurityTokenReference> corresponde ao valor do atributo ValueType do elemento <wsse:BinarySecurityToken>. O atributo Reference/@ValueType não é obrigatório. Entretanto, se o atributo for especificado, seu valor deverá ser equivalente ao atributo @wsse11:TokenType.

O exemplo a seguir mostra o formato da mensagem, a correlação entre os elementos <wsu:Id> e <wsse:SecurityTokenReference> e o relacionamento entre os valores de atributos @wsse:TokenType e ValueType.
<S11:Envelope xmlns:S11="…" xmlns:wsu="…">
   <S11:Header>
      <wsse:Security xmlns:wsse="…">
          <wsse:BinarySecurityToken 
               EncodingType="http://docs.oasis-open.org/wss/2004/01/
                    oasis-200401-wss-soap-message-security-1.0#Base64Binary" 
               ValueType="http://docs.oasis-open.org/wss/
                    oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ" 
               wsu:Id="MyToken">boIBxDCCAcCgAwIBBaEDAgEOogcD…
          </wsse:BinarySecurityToken>
          </wsse:Security>
   </S11:Header>
</S11:Envelope>
      <wsse:Security>
       </wsse:Security>
          <wsse:SecurityTokenReference 
               TokenType="http://docs.oasis-open.org/wss/
                    oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ">
               <wsse:Reference URI="#MyToken" 
                    ValueType="http://docs.oasis-open.org/wss/
                        oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ">
              </wsse:Reference>
          </wsse:SecurityTokenReference>
         …
      <wsse:Security>
      </wsse:Security>
    <S11:Header>
    </S11:Header>
    <S11:Body>
        …
    </S11:Body>
 <S11:Envelope>
 </S11:Envelope>

O elemento <wsse:KeyIdentifier> é usado para especificar um identificador para o token do Kerberos. O valor do identificador é um hash SHA1 do token Kerberos codificado na mensagem anterior. O elemento deve ter um atributo ValueType com um valor #Kerberosv5APREQSHA1. O mecanismo de referência KeyIdentifier é utilizado nas trocas de mensagens subseqüentes após a aceitação do token Kerberos inicial. O exemplo a seguir mostra em negrito as informações do identificador de chave:

<S11:Envelope xmlns:S11="…" xmlns:wsse="…" xmlns:wsu="…">
    <S11:Header>
      <wsse:Security>
         …
         <wsse:SecurityTokenReference 
               wsse11:TokenType=http://docs.oasis-open.org/wss/
                   oasis-wss-kerberos-token-profile-1.1#Kerberosv5_AP_REQ>
               <wsse:KeyIdentifier 
                   ValueType="http://docs.oasis-open.org/wss/
                       oasis-wss-kerberos-token-profile-1.1#Kerberosv5APREQSHA1">
                       GbsDt+WmD9XlnUUWbY/nhBveW8I= 
               </wsse:KeyIdentifier>
          </wsse:SecurityTokenReference>
          …
      </wsse:Security>
   </S11:Header>
   <S11:Body>
       …
    </S11:Body>
</S11:Envelope>

Múltiplas Referências ao Token Kerberos

O cliente não é obrigado a enviar um token Kerberos em cada pedido depois que a identidade do Kerberos é validada e aceita pelo serviço. A especificação OASIS Web Services Security Kerberos Token Profile Versão 1.1 sugere que você use uma chave codificada SHA1 com o elemento <wsse:KeyIdentifier> no elemento <wsse:SecurityTokenReference> para cada mensagem subsequente após a aceitação do pacote AP_REQ inicial. Entretanto, o ambiente de tempo de execução do Web Services Security deve mapear o identificador de chave para um token do Kerberos armazenado em cache para processamento adicional. O IBM® WebSphere Application Server 7.0 e posterior suporta esse armazenamento em cache SHA1, conforme descrito no perfil, por padrão. Entretanto, o servidor de aplicativos também oferece a capacidade de gerar novos tokens AP_REQ para cada pedido com o registro Kerberos do serviço existente. Ao interoperar com o Microsoft .NET, não utilize o cache pSHA1; gere um pacote AP_REQ para cada pedido.


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



Í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=cwbs_kerberosusageoverview
Nome do arquivo: cwbs_kerberosusageoverview.html