Configuración de métodos de firma de solicitud para el cliente
Utilice las API WSSSignature y WSSSignPart para seleccionar los métodos de firma. Los métodos de firma de solicitudes incluyen los métodos de firma, canonicalización, conversión y transformación.
Antes de empezar
En primer lugar, debe haber especificado qué partes del mensaje enviado por el cliente se deben firmar digitalmente utilizando las API de WSS, o configurando los conjuntos de políticas utilizando la consola administrativa.
Acerca de esta tarea
La siguiente tabla describe la finalidad de esta información. Algunas de estas definiciones se basan en la especificación de firmas XML, que se puede consultar en el siguiente sitio web:http://www.w3.org/TR/xmldsig-core.
Nombre del método | Descripción |
---|---|
Algoritmo de canonicalización | Convierte en canónico el elemento <SignedInfo> antes de su conversión como parte de la operación de firma. |
Algoritmo de firma | Calcula el valor de la firma del elemento <SignedInfo> canonicalizado. El algoritmo seleccionado para la configuración del remitente de solicitudes de cliente debe coincidir con el algoritmo seleccionado en la configuración del receptor de solicitudes de servidor. |
Método de transformación | Transforma las partes que se van a firmar, antes de que se convierta la información como parte de la operación de firma. |
Método de conversión | Calcula el valor de conversión de las partes transformadas. El algoritmo seleccionado para la configuración del emisor de solicitudes de cliente debe coincidir con los algoritmos seleccionados en la configuración del receptor de solicitudes de servidor. |
Puede utilizar las API de WSS o configurar conjuntos de políticas utilizando la consola administrativa para configurar los métodos de algoritmo de firma. Si utiliza las API de WSS, utilice las API WSSSignature y WSSSignPart para especificar qué partes del mensaje se van a firmar digitalmente cuando se configura el cliente para la firma de solicitudes.
Las API WSSSignature y WSSSignPart completan los pasos siguientes para configurar la firma y los métodos de algoritmo de la parte firmada:
Procedimiento
Resultados
Ejemplo
El ejemplo siguiente es código de ejemplo para especificar la información de firma, HMAC_SHA1 como método de firma, C14N como método de canonicalización, SHA256 como método de conversión y EXC_C14N y TRANSFORM_STRT10 como métodos de transformación:
//obtener el contexto del mensaje
Object msgcontext = getMessageContext();
//generar la instancia de WSSFactory
WSSFactory factory = WSSFactory.getInstance();
//generar instancia WSSGenerationContext
WSSGenerationContext gencont = factory.newWSSGenerationContext();
//generar manejador de retorno de llamada
X509GenerateCallbackHandler callbackHandler = new X509GenerateCallbackHandler(
"",
"dsig-sender.ks",
"jks",
"client".toCharArray(),
"soaprequester",
"client".toCharArray(),
"CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP",
null);
//generar la señal de seguridad utilizada para la firma
SecurityToken token = factory.newSecurityToken(X509Token.class, callbackHandler);
//generar instancia WSSSignature
WSSSignature sig = factory.newWSSSignature(token);
//establecer el método de canonicalización
// DEFAULT: WSSSignature.EXC_C14N
sig.setCanonicalizationMethod(WSSSignature.C14N);
//establecer el método de firma
// DEFAULT: WSSSignature.RSA_SHA1
sig.setSignatureMethod(WSSSignature.HMAC_SHA1);
//establecer la parte especificada por WSSSignPart
WSSSignPart sigPart = factory.newWSSSignPart();
//establecer el método de conversión
// DEFAULT: WSSSignPart.SHA1
sigPart.setDigestMethod(WSSSignPart.SHA256);
//añadir el método de transformación
// DEFAULT: WSSSignPart.TRANSFORM_EXC_C14N
sigPart.addTransformMethod(WSSSignPart.TRANSFORM_EXC_C14N);
sigPart.addTransformMethod(WSSSignPart.TRANSFORM_STRT10);
// añadir WSSSignPart a WSSSignature
sig.addSignPart(sigPart);
//añadir WSSSignature a WSSGenerationContext
gencont.add(sig);
//generar la cabecera de WS-Security
gencont.process(msgcontext);
Qué hacer a continuación
Después de configurar el cliente para firmar digitalmente el mensaje y seleccionar los métodos de algoritmo, debe configurar el servidor para verificar la firma digital para la firma de solicitudes y seleccionar los métodos de algoritmo.
Configure los conjuntos de políticas utilizando la consola administrativa para configurar la información y los métodos de verificación de la firma en el servidor.