Configurações do Manipulador de Retorno de Chamada para JAX-WS
Use essa página para definir as configurações do manipulador de retorno de chamada para o JAX-WS, que determinam como os tokens de segurança são adquiridos a partir dos cabeçalhos de mensagem.
É possível configurar definições do manipulador de retorno de chamada quando se está editando uma ligação geral no nível do servidor ou no nível da célula. É possível também configurar ligações específicas do aplicativo para tokens e partes da mensagem que são necessárias ao conjunto de política.

- Gerador
- Quando usado em associação com um gerador de criptografia, o alias
fornecido para o gerador é usado para recuperar a chave pública para
criptografar a mensagem. Uma senha não é necessária. O alias inserido em um manipulador
de retorno de chamada associado a um gerador de criptografia deve estar
acessível sem uma senha. Isso significa que o alias não deve ter informações
de chave privada associadas a ele no keystore. Quando usado em associação com um gerador de assinatura, o alias fornecido para o gerador é usado para recuperar a chave privada para assinar a mensagem. Uma senha é necessária.
Evitar Problemas: Como um alias usado para assinar uma mensagem requer uma senha, e um alias usado para criptografar uma mensagem requer que não haja senha, não é possível usar o mesmo alias para um gerador de assinatura e um gerador de criptografia.gotcha
- Consumidor
- Quando usado em associação com um consumidor de criptografia, o alias
fornecido para o consumidor é usado para recuperar a chave privada para
decriptografar a mensagem. Uma senha é necessária.
Quando usado em associação com um consumidor de assinatura, o alias fornecido para o consumidor é usado exclusivamente para recuperar a chave pública que é usada para resolver um certificado X.509 que não passou no cabeçalho de segurança SOAP como um BinarySecurityToken. Uma senha não é necessária.
O alias inserido em um manipulador de retorno de chamada associado a um consumidor de assinatura deve estar acessível sem uma senha. Isso significa que o alias não deve ter informações de chave privada associadas a ela no keystore.
Quando o certificado X.509 não passar no cabeçalho de segurança SOAP como um BinarySecurityToken, uma SecurityTokenReference aparecerá no elemento KeyInfo dentro do elemento Signature no cabeçalho de segurança SOAP que será usada para resolver o certificado X.509. Os métodos que podem ser usados são Identificador de chaves, Nome do emissor e série do emissor X.509 e Impressão Digital. O consumidor aceitará qualquer um desses três métodos para resolver um certificado X.509 fora da mensagem quando um keystore/alias for configurado para um consumidor de token X.509 associado a um consumidor de assinatura. O consumidor de token X.509 não resolve dinamicamente certificados que aparecem fora da mensagem para entradas em um keystore. Os certificados que serão usados devem ser conhecidos no momento da configuração e codificados permanentemente no manipulador de retorno de chamada do consumidor de token X.509.
Quando um certificado X.509 tiver de ser resolvido fora da mensagem, será possível resolver diversos certificados ao usar ligações gerais, mas somente um ao usar ligações específicas do aplicativo. Somente um certificado poderá ser resolvido fora da mensagem quando as ligações específicas do aplicativo forem usadas, pois, em ligações específicas do aplicativo, há somente um consumidor de token X.509 disponível para uso. Como há somente um consumidor de token X.509 para uso, há somente um alias a ser usado, portanto, somente um certificado pode ser resolvido. Por exemplo, se o consumidor de token X.509 for configurado para o certificado A, e se o cliente A enviar o keyIdentifier para o certificado A, o certificado poderá ser recuperado. No entanto, se o cliente B enviar o keyIdentifier para o certificado B, o certificado não poderá ser recuperado e a mensagem será rejeitada.
Quando as ligações gerais são usadas, diversos consumidores de token X.509 podem ser criados, com cada um contendo diferentes certificados configurados neles (keystore/alias). Todos os consumidores de token X.509 associados aos certificados que deseja resolver serão designados às informações chave de Assinatura da configuração da parte assinada nas ligações.
Quando um certificado X.509 é enviado no cabeçalho de segurança SOAP como BinarySecurityToken, se houver um keystore/alias configurado no consumidor de token X.509 associado a um consumidor de assinatura, o certificado que é configurado no consumidor será comparado com relação ao certificado que passou na mensagem. Se eles não corresponderem, a mensagem será rejeitada. Esse comportamento é diferente do JAX-RPC. O certificado associado ao alias configurado no consumidor de token X.509 não é usado para avaliar a confiança no certificado de entrada. Apenas o armazenamento confiável e o armazenamento de certificados são usados para esse propósito.
Se desejar que o certificado configurado no consumidor de token X.509 associado a um consumidor de assinatura esteja disponível para a resolução KeyInfo, mas não rejeitar os certificados X.509 que passaram na mensagem que não corresponde, será possível incluir a seguinte propriedade customizada no manipulador de retorno de chamada do consumidor de token X.509:com.ibm.wsspi.wssecurity.consumer.callbackHandlerKeystoreLimitsAccess=false
Evitar Problemas: Como um alias usado para decriptografar uma mensagem requer uma senha, e um alias usado para verificar uma assinatura requer que não haja senha, não é possível usar o mesmo alias para um consumidor de assinatura e um consumidor de criptografia.gotcha
- Verificando suas chaves
Evitar Problemas: É possível verificar se o alias que você deseja configurar para um manipulador de retorno de chamada do consumidor ou gerador de token X.509 é o tipo correto, usando o aplicativo keytool.
O aplicativo keytool é instalado com o servidor de aplicativos no diretório (wasHome)/bin. Se você executar 'keytool' sem parâmetros, ele exibirá a sintaxe. Um exemplo de chamada do aplicativo keytool é:keytool -list -v -keystore myKeystore.p12 -storepass myPassword -storetype PKCS12
Use o aplicativo keytool para mostrar o conteúdo de seu keystore e, em seguida, verifique se o tipo de entrada de seu alias é consistente com o seu uso desejado. Se você estiver configurando uma entrada que requeira uma chave privada, o tipo de entrada deverá ser keyEntry. Se você estiver configurando uma entrada que requeira uma chave pública, o tipo de entrada deverá ser trustedCertEntry.
gotcha
- Clique em . O painel de ligações indica qual ligação está configurada como a ligação padrão, por exemplo, a ligação de amostra do provedor.
- Para editar essa ligação padrão, clique em .
- Clique no nome da ligação padrão conforme determinado na primeira etapa. Por exemplo, Amostra do Provedor.
- Clique na política WS-Security na tabela Políticas.
- Clique no link Autenticação e Proteção na seção de ligações da política de segurança da Mensagem Principal.
- Clique no link name_of_token na seção Tokens de proteção ou na seção Tokens de autenticação.
- Clique no link Manipulador de retorno de chamada.
- Clique em .
- Selecione um aplicativo que contenha serviços da Web. O aplicativo deve conter um provedor de serviços ou um cliente de serviço.
- Clique no link Conjuntos de política e ligações do provedor de serviços ou em Conjuntos de política e ligações do cliente de serviço na seção Propriedades de Serviços da Web.
- Selecione uma ligação. Você deve ter conectado um conjunto de política e designado uma ligação específica do aplicativo.
- Clique na política WS-Security na tabela Políticas.
- Clique no link Autenticação e Proteção na seção de ligações da política de segurança da Mensagem Principal.
- Clique no link name_of_token na seção Tokens de proteção ou na seção Tokens de autenticação.
- Clique no link Manipulador de retorno de chamada.
Esta página do console administrativo se aplica somente aos aplicativos Java™ API for XML Web Services (JAX-WS).
O Manipulador de Retorno de Chamada exibe os campos de forma diferente para cada token que é configurado. Dependendo se você está configurando um token gerador ou consumidor para proteção ou se está configurando tokens de entrada ou saída para autenticação, as seções e campos do painel exibem alguns ou todos os campos explicados neste tópico, conforme informado na descrição de cada campo.
Nome da Classe
Os campos da seção Nome da classe estarão disponíveis para todos os tipos de configuração de token.
Selecione o nome da classe a ser utilizado para o manipulador de retorno de chamada. Selecione a opção Utilizar padrão integrado para operação normal. Utilize a opção Utilizar Customizado somente se estiver utilizando um tipo de token customizado.
Para o tipo de token customizado do Kerberos, use o nome da classe com.ibm.websphere.wssecurity.callbackhandler.KRBTokenGenerateCallbackHandler, para a configuração de gerador de token. Use o com.ibm.websphere.wssecurity.callbackhandler.KRBTokenConsumeCallbackHandler para a configuração do consumidor de token.
Utilizar Padrão Integrado
Especifica se o valor padrão será utilizado para o nome da classe. Utilize o valor padrão (mostrado no campo) para o nome da classe quando selecionar este botão de rádio. Esse nome é baseado no tipo de token e em se o manipulador de retorno de chamada é para um token gerador ou consumidor. Essa opção é mutuamente exclusiva à opção Utilizar customizado.
Utilizar Customizado
Especifica se um valor customizado será utilizado para o nome da classe. Selecione este botão de rádio e digite o nome no campo para utilizar um nome de classe customizado.
Nenhum valor padrão está disponível para este campo de entrada. Utilize as informações contidas na tabela a seguir para determinar esse valor:
Tipo de Token | Consumidor ou Gerador | Nome da Classe do Manipulador de Retorno de Chamada |
---|---|---|
UsernameToken | consumidor | com.ibm.websphere.wssecurity.callbackhandler.UNTConsumeCallbackHandler |
UsernameToken | gerador | com.ibm.websphere.wssecurity.callbackhandler.UNTGenerateCallbackHandler |
X509Token | consumidor | com.ibm.websphere.wssecurity.callbackhandler.X509ConsumeCallbackHandler |
X509Token | gerador | com.ibm.websphere.wssecurity.callbackhandler.X509GenerateCallbackHandler |
LTPAToken/LTPAPropagationToken | consumidor | com.ibm.websphere.wssecurity.callbackhandler.LTPAConsumeCallbackHandler |
LTPAToken/LTPAPropagationToken | gerador | com.ibm.websphere.wssecurity.callbackhandler.LTPAGenerateCallbackHandler |
SecureConversationToken | consumidor | com.ibm.ws.wssecurity.impl.auth.callback.SCTConsumeCallbackHandler |
SecureConversationToken | gerador | com.ibm.ws.wssecurity.impl.auth.callback.WSTrustCallbackHandler |
Esse botão é mutuamente exclusivo à opção Utilizar padrão integrado.
Certificados (Gerador)
Os campos da seção Certificados estarão disponíveis se você estiver configurando um token de proteção. Para um token de gerador, é possível clicar para selecionar um armazenamento de certificados da lista, ou clicar no botão Novo para incluir um armazenamento de certificados.
Certificados (Consumidor)
Os campos da seção Certificados estarão disponíveis se você estiver configurando um token de proteção. Para um token do consumidor, é possível usar a opção Confiar em todo Certificado, ou a opção Armazenamento de Certificados, para configurar o armazenamento de certificados.
Certificados - Confiar em todo Certificado (Consumidor)
Esta opção é aplicável apenas ao consumidor de token. Essa opção indica que o sistema confiará em todos os certificados e não define um armazenamento de certificados específico. Essa opção é mutuamente exclusiva para a opção Armazenamento de Certificados.
Certificados - Armazenamento de Certificados (Consumidor)
Esta opção é aplicável apenas ao consumidor de token. Utilize esta opção para especificar uma coleta de armazenamentos de certificados contendo certificados intermediários, o que pode incluir listas de revogação de certificado (CRLs). Selecione esta opção para confiar no armazenamento ou nos armazenamentos de certificados especificados neste campo de entrada. Essa opção é mutuamente exclusiva à opção Confiar em todos os certificados. Quando você seleciona a opção Armazenamento de Certificados, o botão Novo é ativado para você poder configurar um novo armazenamento de certificados e um armazenamento de âncoras de confiança.
É possível configurar o valor do campo de armazenamento de certificados para o valor padrão, que é Nenhum. No entanto, o valor do armazenamento de âncoras de confiança deve ser configurado para um valor específico. Não há valor padrão. A âncora confiável é necessária se a opção Confiar Qualquer Certificado não for selecionada.
Autenticação Básica
Os campos da seção Autenticação Básica estarão disponíveis se você estiver configurando um token de autenticação que não seja um token de propagação LTPA.
Para o tipo de token customizado Kerberos, você deve preencher a seção Autenticação Básica para o login Kerberos.
Nome do usuário
Especifica o nome de usuário que você deseja autenticar.
Senha
Especifica a senha a ser autenticada. Digite uma senha a ser autenticada neste campo de entrada.
Confirmar senha
Especifica a senha que você deseja confirmar.
Armazenamento de chaves
Os campos keystore não estão disponíveis quando o tempo de execução determina que eles não são necessários.
Na lista de Nomes de armazenamento de chaves, é possível clicar em Customizado para definir um armazenamento de chaves customizado, clicar em um dos nomes de armazenamento de chaves definidos externamente ou clicar emNenhum se não for necessário armazenamento de chaves.
Armazenamento de Chaves - Nome
Especifica o nome do keystore que deseja usar.
- Nenhuma
- Especifica para não usar um keystore.
- Personalizada
- Especifica usar um keystore definido pelo usuário. Clique no link Configuração do armazenamento de chaves customizado para definir o armazenamento de chaves customizado e as configurações principais.
Chave
Especifica os atributos de chave a serem recuperados a partir do armazenamento de chaves configurado. Alguns campos na seção Chave não estão disponíveis quando o tempo de execução determina que eles não são necessários.
Quando um keystore gerenciado centralmente é selecionado para o Keystore, os campos na seção Chave estão disponíveis.
Nome
Especifica o nome da chave a ser utilizada. A lista é preenchida com as chaves disponíveis no keystore gerenciado centralmente selecionado. Especifica o nome da chave que você deseja usar ou '(nenhum)' se nenhuma chave tiver que ser usada.
Alias
Exibe o alias do nome da chave selecionado.
Senha
Especifica a senha da chave que você deseja utilizar. Esse campo estará disponível apenas quando o tempo de execução determinar que ele é necessário.
Você não pode definir uma senha para chaves públicas para o gerador de criptografia assimétrica ou para o consumidor de criptografia assimétrica. Consulte 'evitar problema' no início do artigo.
Confirmar senha
Especifica a confirmação da senha da chave que você deseja utilizar. Esse campo estará disponível apenas quando o tempo de execução determinar que ele é necessário.
Não forneça uma senha de confirmação da chave para chaves públicas para criptografia de saída assimétrica ou assinatura de entrada.
Armazenamento de Chaves - Configuração do Armazenamento de Chaves Customizado
Especifica um link para criar um armazenamento de chaves customizado. Clique neste link para abrir um painel em que é possível configurar um armazenamento de chaves customizado.
Senha de Armazenamento da Chave
Especifica a senha utilizada para acessar o arquivo de armazenamento de chave.
Caminho de Armazenamento de Chaves
Especifica o local do arquivo de armazenamento de chaves.
Utilize ${USER_INSTALL_ROOT} no nome do caminho porque essa variável é expandida para o caminho do produto em sua máquina. Para alterar o caminho utilizado por essa variável, clique em Ambiente > Variáveis do WebSphere e clique em USER_INSTALL_ROOT.
Tipo de Armazenamento de Chaves
Especifica o tipo de formato de arquivo de armazenamento de chave
- JKS
- Utilize esta opção, se o armazenamento de chaves utilizar o formato JKS (Java Keystore).
- JCEKS
- Utilize essa opção se o Java Cryptography Extension estiver configurado no SDK (kit de desenvolvimento de software). O IBM® JCE padrão é configurado no servidor de aplicativos. Esta opção fornece maior proteção para chaves privadas armazenadas, utilizando a criptografia Triple DES.
JCERACFKS
Utilize JCERACFKS se os certificados estiverem armazenados em um anel de chaves SAF (z/OS apenas).
- PKCS12KS (PKCS12)
- Utilize esta opção se seu arquivo de armazenamento de chave utilizar o formato de arquivo PKCS#12.
Propriedades Personalizadas
Os campos da seção Propriedades customizadas estarão disponíveis para todos os tipos de configuração de token.
É possível incluir as propriedades customizadas necessárias para o manipulador de retorno de chamada por meio do uso de pares nome-valor.
Para implementar a criptografia do certificado signatário durante o uso do modelo de programação JAX-WS, inclua a propriedade customizada com.ibm.wsspi.wssecurity.token.cert.useRequestorCert com o valor true no manipulador de retorno de chamada do gerador de token de criptografia. Essa implementação utiliza o certificado do signatário do pedido SOAP para criptografar da resposta SOAP. Essa propriedade customizada é utilizada pelo gerador de resposta.
Para um token customizado Kerberos baseado no OASIS Web Services Security Specification para Kerberos Token Profile V1.1, especifique a seguinte propriedade para geração de token: com.ibm.wsspi.wssecurity.krbtoken.clientRealm. Isso especifica o nome da região do Kerberos associada ao cliente e permite que a região do cliente Kerberos inicie o login do Kerberos. Se não for especificado, o nome de região do Kerberos padrão será utilizado. Esta propriedade é opcional para um único ambiente da região do Kerberos.
A propriedade customizada do Kerberos, com.ibm.wsspi.wssecurity.krbtoken.loginPrompt, permite o login do Kerberos quando o valor é true. O valor padrão é false. Essa propriedade é opcional.
Nome da propriedade (gerador) | Valor da propriedade |
---|---|
com.ibm.wsspi.wssecurity.token.username.addNonce | true |
com.ibm.wsspi.wssecurity.token.username.addTimestamp | true |
Nome da propriedade (consumidor) | Valor da propriedade |
---|---|
com.ibm.wsspi.wssecurity.token.username.verifyNonce | true |
com.ibm.wsspi.wssecurity.token.username.verifyTimestamp | true |
Nome
Especifica o nome da propriedade customizada a ser utilizada.
As propriedades customizadas não são exibidas inicialmente nesta coluna. Clique em uma das ações a seguir para propriedades customizadas:
Botão | Ação Resultante |
---|---|
Novo(a) | Cria uma nova entrada de propriedade customizada. Para incluir uma propriedade customizada, digite o nome e o valor. |
Excluir | Remove a propriedade customizada selecionada. |
Valor
Especifica o valor da propriedade customizada a ser utilizada. Com o campo de entrada Valor, é possível inserir ou excluir o valor de uma propriedade customizada.