Métodos de Assinatura Digital Utilizando a WSSSignature API
É possível configurar as informações sobre assinatura para a ligação do gerador utilizando a WSS API. Para configurar o cliente para assinatura de pedidos, feche os métodos de assinatura digital. Os métodos de algoritmo incluem os métodos de assinatura e canonicalização.
Você deve configurar as informações sobre assinatura do gerador para proteger a integridade da mensagem assinando digitalmente as mensagens SOAP. A integridade refere-se à assinatura digital, enquanto que a confidencialidade refere-se à criptografia. A integridade diminui o risco de modificação de dados quando você transmite dados pela rede.
Ao especificar quais partes da mensagem serão assinadas digitalmente, será necessário especificar qual método será utilizado para assinar digitalmente a mensagem.
Métodos
- Método de assinatura
- Configura o método do algoritmo de assinatura.
- Método de Canonicalização
- Configura o método do algoritmo de canonicalização.
Algoritmos de assinatura
Os algoritmos de assinatura especificam o algoritmo utilizado para assinar o certificado. Os algoritmos de assinatura especificam os URIs (Uniform Resource Identifiers) do método de assinatura. O WebSphere Application Server suporta os seguintes algoritmos pré-configurados:
Algoritmo | Description |
---|---|
WSSSignature.HMAC_SHA1 | Um URI do algoritmo de assinatura, HMAC: http://www.w3.org/2000/09/xmldsig#hmac-sha1 |
WSSSignature.RSA_SHA1 (o valor padrão) | Um URI do algoritmo de assinatura, RSA: http://www.w3.org/2000/09/xmldsig#rsa-sha1 |
Para WSS APIs, WebSphere Application Server o não suporta o algoritmo DSA-SHA1, http://www.w3.org/2000/09/xmldsig#dsa-sha1
O algoritmo de assinatura especificado para a configuração do gerador de pedido deve corresponder ao algoritmo especificado para a configuração do consumidor de pedido.
Algoritmos de Canonicalização
Os algoritmos de canonicalização especificam o URI (Identificador Uniforme de Recursos) do método de canonicalização. O WebSphere Application Server suporta os seguintes algoritmos pré-configurados:
Algoritmo | Description |
---|---|
WSSSignature.EXC_C14N (o valor padrão) | Um URI do algoritmo de canonicalização exclusivo EXC_C14N: http://www.w3.org/2001/10/xml-exc-c14n# |
WSSSignature.C14N | Um URI do algoritmo de canonicalização inclusive, C14N: http://www.w3.org/2001/10/xml-c14n# |
O algoritmo de canonicalização especificado para a configuração do gerador de pedido deve corresponder ao algoritmo especificado para a configuração do consumidor de pedido.
O exemplo a seguir fornece o código de amostra da WSS API que especifica HMAC_SHA1 como um método de assinatura e C14n como um método de canonicalização:
//gerar a instância do WSSFactory
WSSFactory factory = WSSFactory.getInstance();
//gerar a instância do WSSGenerationContext
WSSGenerationContext gencont = factory.newWSSGenerationContext();
//gerar o manipulador de retorno de chamada
X509GenerateCallbackHandler callbackHandler = new
X509GenerateCallbackHandler(
"",
"dsig-sender.ks",
"jks",
"client".toCharArray(),
"soaprequester",
"client".toCharArray(),
"CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP",
null);
//gerar o token de segurança utilizado para a assinatura
SecurityToken token = factory.newSecurityToken(X509Token.class,
callbackHandler);
//gerar a instância do WSSSignature
WSSSignature sig = factory.newWSSSignature(token);
//configurar o método de canonicalização
// PADRÃO: WSSSignature.EXC_C14N
sig.setCanonicalizationMethod(WSSSignature.C14N);
//configurar o método de assinatura
// PADRÃO: WSSSignature.RSA_SHA1
sig.setSignatureMethod(WSSSignature.HMAC_SHA1);
//incluir a WSSSignature na WSSGenerationContext
gencont.add(sig);
//gerar o cabeçalho de WS-Security
gencont.process(msgcontext);