Você pode configurar as informações de assinatura para as ligações
do consumidor de resposta do cliente (receptor). As informações de assinatura são utilizadas para assinar e validar partes de uma mensagem, incluindo o corpo da mensagem SOAP, as informações do registro de data e hora e o token do Nome do Usuário.
Antes de Iniciar
O WebSphere Application
Server utiliza a assinatura digital XML com algoritmos existentes como RSA, HMAC e SHA1. A assinatura XML define muitos métodos para descrever informações-chave
e permite a definição de um novo método. Antes de concluir estas etapas, leia as informações sobre assinatura digital XML para se familiarizar com a assinatura e verificar assinaturas digitais para conteúdo digital.
Pela inclusão da assinatura XML em mensagens SOAP, obtém-se o seguinte: autenticação e integridade da mensagem. Integridade refere-se à assinatura digital, enquanto a confidencialidade refere-se à criptografia.
A integridade diminui o risco de modificação de dados durante a transmissão dos dados pela Internet.
Antes de verificar a assinatura e as partes assinadas da mensagem SOAP, conclua as seguintes tarefas:
- Configure a assinatura.
- Inclua partes assinadas, se necessário.
- Escolha os métodos das partes assinadas e da assinatura.
Sobre Esta Tarefa
Use as APIs WSS (Web Services Security) para configurar as informações de verificação de assinatura para a seção do consumidor de resposta (cliente) do arquivo de ligação. Use as APIs WSSVerification ou WSSVerifyPart para configurar o cliente para verificação de assinatura do pedido e para especificar quais partes digitalmente assinadas da mensagem deve-se verificar.
O WebSphere Application Server utiliza as informações sobre assinatura no lado do consumidor para verificar a integridade da mensagem SOAP recebida, validando que as partes da mensagem (como o corpo, o registro de data e hora e o token do Nome de Usuário) sejam assinadas.
No cliente, use as APIs WSS, ou configure os conjuntos de políticas que usam o console administrativo para especificar quais partes da mensagem serão assinadas e para configurar as informações de chave que são mencionadas pelas referências das informações de chave.
Para verificar as partes da assinatura e as partes assinadas, use as APIs WSSVerification e WSSVerifyPart.
O WebSphere Application
Server fornece valores padrão para ligações. No entanto, um administrador deve modificar os padrões para um
ambiente de produção.
As APIs WSSVerification
e WSSVerifyPart concluem as seguintes etapas para especificar quais partes digitalmente assinadas da mensagem serão verificadas ao configurar o cliente para assinatura do consumidor de resposta:
Procedimento
- A API WSSVerification inclui as partes de verificação requeridas da mensagem SOAP.
A referência de parte faz referência à parte da mensagem que é digitalmente assinada. O atributo de parte se refere ao nome do elemento <Integrity> quando o elemento
<PartReference> é especificado para a assinatura. É possível especificar vários elementos <PartReference> no
elemento <SigningInfo>. O elemento <PartReference> possui dois elementos filhos
quando ele é especificado para a assinatura: <DigestTransform> e
<Transform>.
A API WSSVerification configura as seguintes partes como partes de verificação:
Parte da Verificação |
Description |
Token de segurança |
Inclui informações para o token de segurança usado para a verificação de assinatura. |
Cabeçalho SOAP e QName como Destino |
Inclui o cabeçalho SOAP, especificado por QName, como uma parte da verificação. |
As APIs WSS permitem usar palavras-chave ou uma expressão XPath para especificar as partes da mensagem que serão verificadas. O WebSphere Application
Server suporta o uso das seguintes palavras-chave:Palavra-chave |
Referências |
WSSVerification.ADDRESSING_HEADERS |
Os cabeçalhos WS-Addressing (Web Services Addressing). |
WSSVerification.BODY |
O corpo da mensagem SOAP. O corpo é a parte dos dados do usuário da mensagem. |
WSSVerification.TIMESTAMP |
Informações do registro de data e hora de criação e expiração. |
- A API WSSVerification inclui o cabeçalho requerido da mensagem SOAP. O cabeçalho, especificado por QName, é um cabeçalho de verificação requerido.
- A API WSSVerification inclui um token de segurança. Inclui informações sobre o token de segurança usado para a verificação de assinatura, como:
- A classe do token de segurança.
- O manipulador de retorno de chamada
- O nome da configuração de login do JAAS.
- A API WSSVerification inclui o algoritmo do método de assinatura. O método de assinatura é o algoritmo utilizado para converter o elemento
<SignedInfo> canonicalizado no arquivo de ligação no elemento <SignatureValue>. O algoritmo
especificado para o consumidor, que é a configuração do consumidor de resposta, deve corresponder ao algoritmo especificado para a configuração do gerador de pedido. O WebSphere Application
Server suporta os seguintes algoritmos de assinatura pré-configurados:
O WebSphere Application
Server não suporta o seguinte algoritmo para DSA-SHA1: http://www.w3.org/2000/09/xmldsig#dsa-sha1.
Você não pode usar o algoritmo DSA-SHA1 se quiser ser compatível com o BSP (Basic Security Profile).
- A API WSSVerification inclui um método de canonicalização. O algoritmo do método de canonicalização é utilizado para canonicalizar
o elemento <SignedInfo> antes dele ser incorporado como parte da operação
de assinatura digital. O algoritmo de canonicalização especificado para o gerador
deve corresponder ao algoritmo para o consumidor.
O WebSphere Application Server suporta os seguintes algoritmos de canonicalização pré-configurados:
- A API WSSVerification verifica se uma confirmação de assinatura é necessária. A especificação de OASIS WS-Security (Web Services Security) Versão 1.1 define o uso da confirmação de assinatura.
Se você estiver usando o WS-Security Versão 1.0, esta função não estará disponível.
O valor de confirmação da assinatura será armazenado para validar a confirmação de assinatura depois que a mensagem recebida for retornada. Esse método será chamado se a mensagem de resposta tiver de anexar a confirmação de assinatura na mensagem SOAP.
- A API WSSVerifyPart inclui um método de compilação. Para cada referência de parte nas informações sobre assinatura, a API especifica tanto um algoritmo de método de compilação quanto um algoritmo de transformação.
O WebSphere Application
Server suporta os seguintes algoritmos de compilação pré-configurados:
- WSSVerifyPart.SHA1: http://www.w3.org/2000/09/xmldsig#sha1
- WSSVerifyPart.SHA256: http://www.w3.org/2001/04/xmlenc#sha256
- WSSVerifyPart.SHA512: http://www.w3.org/2001/04/xmlenc#sha512
- A API WSSVerifyPart inclui um método de transformação. Para cada referência de parte nas informações sobre assinatura, a API especifica tanto um algoritmo de método de compilação quanto um algoritmo de transformação.
O WebSphere Application
Server suporta os seguintes algoritmos de transformação pré-configurados:
- WSSVerifyPart.TRANSFORM_EXC_C14N (o valor padrão): http://www.w3.org/2001/10/xml-exc-c14n#
- WSSVerifyPart.TRANSFORM_XPATH2_FILTER: http://www.w3.org/2002/06/xmldsig-filter2
- WSSVerifyPart.TRANSFORM_STRT10: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
- WSSVerifyPart.TRANSFORM_ENVELOPED_SIGNATURE: http://www.w3.org/2000/09/xmldsig#enveloped-signature
Para as APIs do WSS, o WebSphere Application Server não suporta estes algoritmos:
- http://www.w3.org/2002/07/decrypt#XML
- http://www.w3.org/TR/1999/REC-xpath-19991116
O algoritmo de transformação para o consumidor deve corresponder ao algoritmo de transformação do gerador.
Resultados
Você concluiu as etapas para configurar as informações de assinatura para as seções do consumidor de resposta do cliente dos arquivos de ligações.
Exemplo
O seguinte exemplo mostra o código de amostra da API WSS para verificar a assinatura e verificar o tipo de token X.509 como o token de segurança:
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Gerar o manipulador de retorno de chamada do X.509 no consumidor
X509ConsumeCallbackHandler callbackhandler = generateCallbackHandler();
WSSVerification ver = factory.newWSSVerification(X509Token.class,
callbackhandler);
concont.add(ver);
O que Fazer Depois
Se ainda não tiver configurado, especifique uma configuração de informações de assinatura semelhante para as ligações do gerador.
Em seguida, se já tiver configurado, configure as informações de criptografia e decriptografia ou configure os tokens do gerador e do consumidor.