Geração de tokens SPNEGO para solicitações JAX-WS de saída usando Ligações do conjunto de política do cliente

Os clientes JAX-WS podem se autenticar usando uma série de diferentes mecanismos de autenticação do transporte HTTP.

Além de se autenticarem em aplicativos do provedor de serviços por meio de autenticação WS-Security, os clientes JAX-WS podem se autenticar usando vários mecanismos de autenticação de transporte HTTP, incluindo o seguinte:
  • Autenticação básica usando as propriedades nas ligações de transporte HTTP.
  • Autenticação do Cliente SSL/TLS usando as ligações de transporte SSL.
  • Autenticação SPNEGO usando propriedades customizadas nas ligações de transporte.
Há 5 variações diferentes para se obter as credenciais Kerberos usadas para o token SPNEGO de saída:
  1. Um token solicitado que usa credenciais do Windows Native. Quando o processo do WebSphere Java™ estiver em execução em um sistema Windows com um ID do usuário que possui credenciais Kerberos, o sistema operacional Windows manterá um Kerberos Ticket Granting Ticket (TGT) para esse usuário. O tempo de execução do cliente JAX-WS usa esse TGT para solicitar um token SPNEGO que pode ser solicitado para um ServicePrincipalName (SPN) para o sistema de serviço de destino.
  2. Um token solicitado que usa credenciais Kerberos em cache. Em um sistema no qual um usuário efetuou login, geralmente utilizando ferramentas como a kinit do Java, as credenciais Kerberos do usuário são armazenadas em um arquivo de cache denominado krb5cc_<userid>. Como alternativa, um arquivo keytab que contém uma chave do usuário pode ser criado usando várias ferramentas como o Microsoft ktpass ou o Java ktab. Esses arquivos contêm uma cópia da chave Kerberos do usuário que pode ser usada para obter um Ticket Granting Ticket (TGT) para esse ID do usuário. O tempo de execução do cliente JAX-WS usa esse TGT para solicitar um token SPNEGO que pode ser solicitado para um ServicePrincipalName (SPN) para o sistema de serviço de destino. O processo do WebSphere deve ser configurado para usar o arquivo krb5cc_<userid ou arquivo keytab. O UserPrincipalName (UPN) para a credencial em cache no arquivo também deve ser fornecido.
  3. Um token solicitado que usa uma credencial Kerberos com um ID do usuário e senha. Nesse cenário, o tempo de execução do cliente JAX-WS se conecta ao servidor Kerberos Key Distribution com o ID do usuário e a senha fornecidos para obter um Ticket Granting Ticket (TGT). A classe então solicitará o token SPNEGO com esse TGT. O tempo de execução do cliente JAX-WS solicita o ServicePrincipalName (SPN) para o sistema de serviço de destino, e o ID do usuário e senha.
  4. Um token solicitado usando uma credencial Kerberos existente em um Java Subject. O Subject pode obter uma credencial Kerberos de uma das seguintes maneiras:
    • O usuário que efetuou login em um aplicativo da web usando a autenticação da web SPNEGO de entrada. Somente a autenticação da web SPNEGO precisa ser configurada e ativada no WebSphere Application Server para essa opção. O ID do usuário Kerberos que está associado ao serviço SPNEGO de entrada deve ser ativado para a delegação Kerberos completa.
    • Uma solicitação de serviço da web JAX-WS foi recebida contendo um token WS-Security Kerberos. O ID do usuário Kerberos que está associado ao serviço da web de entrada deve ser ativado para a delegação Kerberos completa.
    • O usuário que efetuou login com o ID do usuário e senha, e o WebSphere Application Server que foi configurado para autenticação LTPA e Kerberos.
  5. Uma solicitação de serviço da web JAX-WS foi recebida contendo um token de nome do usuário com uma senha, e o WebSphere Application Server foi configurado para autenticação LTPA e Kerberos.
Todas as 5 das variações anteriores que podem ser usadas para obter as credenciais Kerberos que são usadas para o token SPNEGO de saída requerem que as propriedades customizadas sejam definidas nas ligações HTTP, nas ligações do conjunto de políticas do cliente.
Tabela 1. Lista de propriedades customizadas a serem definidas nas ligações HTTP, nas ligações conjunto de políticas do cliente
Nome da Propriedade Valor Comments
com.ibm.websphere.webservices.spnego.enabled Booleano Deve ser configurado para true para ativar qualquer uma das opções de autenticação SPNEGO no tempo de execução de ligação do cliente JAX-WS.
com.ibm.websphere.webservices.spnegoOutboundSPN Sequência de caracteres Deve ser configurado como o Nome principal do serviço para o provedor do Serviço da web.
com.ibm.websphere.webservices.spnegoLoginMechanism Sequência de caracteres Deve ser GSSUP, native, caller ou keytab.
com.ibm.websphere.webservices.JAASConfigName Sequência de caracteres Quando spnegoLoginMechanism é configurado como o keytab, essa propriedade deve ser configurada como Configuração de login de JAAS que identifica o arquivo de keytab a ser usado.
com.ibm.websphere.webservices.spnegoUPN Sequência de caracteres Quando spnegoLoginMechanism é configurado como o keytab, essa propriedade deve ser configurada como o Nome principal do usuário da chave no keytab a ser usado.
com.ibm.websphere.webservices.spnegoOutboundLifeTime Número Inteiro Se não for especificado, o token SPNEGO será solicitado para tempo de vida Infinito.
com.ibm.websphere.webservices.spnegoOutboundDelegate Booleano Se configurado como true e a conta SPN de serviço da web for ativada para delegação, então o token SPNEGO enviado para o serviço da web poderá ser delegado.

Quando a propriedade spnegoLoginMechanism for configurada como GSSUP, o ID do usuário e a senha serão obtidos a partir da autenticação básica para as propriedades de solicitações do serviço de saída.

Quando a propriedade spnegoLoginMechanism for configurada como caller, a credencial Kerberos será obtida a partir do Caller Subject.

Quando a propriedade spnegoLoginMechanism for configurada como Native, as credenciais Kerberos serão obtidas a partir do sistema operacional Windows.

Notas para credenciais Native
O cache de credenciais Microsoft Kerberos Logon Session (MSLSA) dependem da capacidade para extrair o ticket Kerberos inteiro, incluindo a chave de sessão a partir do cache de credenciais Kerberos Logon Session (LSA). Em uma tentativa de aumentar a segurança, a Microsoft implementou um recurso pelo qual ela não exporta mais as chaves de sessão para Ticket Getting Tickets, o que pode fazer com que elas sejam inutilizáveis para o IBM® JGSS quando forem feitas tentativas de solicitar mais tickets de serviços. Esse novo recurso foi visto no Windows 2003 Server e em sistemas posteriores. A Microsoft forneceu a seguinte chave de registro para desativar este novo recurso:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
AllowTGTSessionKey = 0x01 (DWORD)
Requisitos no arquivo de configuração do Kerberos
O arquivo de configuração Kerberos deve ser configurado corretamente, independentemente da abordagem.
  • O modo como o processo do WebSphere atinge o Key Distribution Center (KDC) deve ser configurado adequadamente por meio das sub-rotinas [realms] e [domain_realm].
  • Os tipos de criptografia a serem usados na sub-rotina [libdefaults] devem especificar os valores default_tkt_enctypes e default_tgs_enctypes.
  • A sub-rotina [libdefaults] deve incluir o seguinte:
    • forwardable = true
    • renewable = true
    • noaddresses = true
  • A sub-rotina [libdefaults] deve definir um valor clockskew razoável.

Ícone que indica o tipo de tópico Tópico de Referência



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