WSS API を使用して、ジェネレーター・バインディングの署名情報を構成できます。 要求署名用クライアントを構成するには、デジタル署名方式を選択します。 このアルゴリズム方式にはシグニチャー方式と正規化方式が含まれます。
ジェネレーターの署名情報を構成して、SOAP メッセージにデジタル署名することで、メッセージの保全性を保護する必要があります。 機密性が暗号化を意味するのに対して、「保全性」はデジタル・シグニチャーを意味します。 保全性によって、データがネットワーク内を伝送されている間に変更されるリスクが減少します。
デジタル署名するメッセージ・パーツを指定したら、次に、 そのメッセージのデジタル署名に使用するメソッドを指定する必要があります。
シグニチャー・アルゴリズムは、証明書の署名に使用するアルゴリズムを指定します。 このシグニチャー・アルゴリズムは、シグニチャー方式のアルゴリズム Uniform Resource Identifier (URI) を指定します。 WebSphere Application Server は、以下の事前構成アルゴリズムをサポートします。
アルゴリズム | 説明 |
---|---|
WSSSignature.HMAC_SHA1 | シグニチャー・アルゴリズム HMAC の URI: http://www.w3.org/2000/09/xmldsig#hmac-sha1 |
WSSSignature.RSA_SHA1 (デフォルト値) | シグニチャー・アルゴリズム RSA の URI: http://www.w3.org/2000/09/xmldsig#rsa-sha1 |
WSS API の場合、WebSphere Application Server は DSA-SHA1 アルゴリズム (http://www.w3.org/2000/09/xmldsig#dsa-sha1) をサポートしていません。
要求ジェネレーターの構成用に指定されている署名アルゴリズムは、要求コンシューマー用に指定されているアルゴリズムと一致している必要があります。
正規化アルゴリズムは、正規化方式の Uniform Resource Identifier (URI) を指定します。 WebSphere Application Server は、以下の事前構成アルゴリズムをサポートします。
アルゴリズム | 説明 |
---|---|
WSSSignature.EXC_C14N (デフォルト値) | 排他的正規化アルゴリズム EXC_C14N の URI: http://www.w3.org/2001/10/xml-exc-c14n# |
WSSSignature.C14N | 包括的正規化アルゴリズム C14N の URI: http://www.w3.org/2001/10/xml-c14n# |
要求ジェネレーターの構成用に指定されている正規化アルゴリズムは、要求コンシューマー用に指定されているアルゴリズムと一致している必要があります。
以下の例は、シグニチャー方式として HMAC_SHA1、正規化方式として C14n を指定した WSS API のサンプル・コードです。
//generate WSSFactory instance WSSFactory factory = WSSFactory.getInstance(); //generate WSSGenerationContext instance WSSGenerationContext gencont = factory.newWSSGenerationContext(); //generate callback handler X509GenerateCallbackHandler callbackHandler = new X509GenerateCallbackHandler( "", "dsig-sender.ks", "jks", "client".toCharArray(), "soaprequester", "client".toCharArray(), "CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP", null); //generate the security token used to the signature SecurityToken token = factory.newSecurityToken(X509Token.class, callbackHandler); //generate WSSSignature instance WSSSignature sig = factory.newWSSSignature(token); //set the canonicalization method // DEFAULT: WSSSignature.EXC_C14N sig.setCanonicalizationMethod(WSSSignature.C14N); //set the signature method // DEFAULT: WSSSignature.RSA_SHA1 sig.setSignatureMethod(WSSSignature.HMAC_SHA1); //add the WSSSignature to the WSSGenerationContext gencont.add(sig); //generate the WS-Security header gencont.process(msgcontext);