WSSVerification API を使用したシグニチャー検査方式
コンシューマー・バインディングの WSS API を使用して、署名 (シグニチャー) の情報を検査できます。 シグニチャー方式および正規化アルゴリズム方式はジェネレーター・バインディングで使用されます。 WSSVerification API は com.ibm.websphere.wssecurity.wssapi.verification パッケージに同梱です。
コンシューマー署名情報を構成してメッセージの保全性を保護するには、最初にデジタルで署名してから SOAP メッセージのシグニチャーを検査してください。 機密性が暗号化を意味するのに対して、保全性はデジタル署名を意味します。 保全性によって、データがネットワーク内を伝送されている間に変更されるリスクが減少します。
方式
- シグニチャー方式
- シグニチャー・アルゴリズム方式を設定します。
- 正規化方式
- 正規化アルゴリズム方式を設定します。
要求生成プログラムの構成用に指定されているアルゴリズムは、応答コンシューマーの構成用に指定されているアルゴリズムと一致している必要があります。
署名アルゴリズム
証明書の署名に使用するシグニチャー検査アルゴリズムを指定するシグニチャー・アルゴリズムです。 このシグニチャー・アルゴリズムは、シグニチャー検査方式の Uniform Resource Identifier (URI) を指定します。 WebSphere® Application Server は 次の事前構成済みアルゴリズムをサポートしています。
アルゴリズム | 説明 |
---|---|
WSSVerification.HMAC_SHA1 | シグニチャー・アルゴリズム HMAC の URI: http://www.w3.org/2000/09/xmldsig#hmac-sha1 |
WSSVerification.RSA_SHA1 (デフォルト値) | シグニチャー・アルゴリズム RSA の URI: http://www.w3.org/2000/09/xmldsig#rsa-sha1 |
WebSphere Application Server は DSA-SHA1 のアルゴリズム (http://www.w3.org/2000/09/xmldsig#dsa-sha1) をサポートしていません。
正規化アルゴリズム
正規化アルゴリズムは、正規化方式の Uniform Resource Identifier (URI) を指定します。 WebSphere Application Server は 次の事前構成済みアルゴリズムをサポートしています。
アルゴリズム | 説明 |
---|---|
WSSVerification.C14N | 包括的正規化アルゴリズム C14N の URI: http://www.w3.org/2001/10/xml-c14n# |
WSSVerification.EXC_C14N (デフォルト値) | 排他的正規化アルゴリズム EXC_C14N の URI: http://www.w3.org/2001/10/xml-exc-c14n# |
以下の例は、X.509 トークンをシグニチャー検査用セキュリティー・トークンとして指定した場合の WSS API サンプル・コードです。
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// X509ConsumeCallbackHandler
X509ConsumeCallbackHandler callbackHandler = new
X509ConsumeCallbackHandler("dsig-receiver.ks",
"jks",
"server".toCharArray(),
certList,
java.security.Security.getProvider("IBMCertPath")46 );
// Set the verification component
// DEFAULT verification parts: Body, WS-Addressing header, and Timestamp
// DEFAULT data encryption algorithm: RSA-SHA1
// DEFAULT digest algorithm: SHA1
// DEFAULT canonicalization algorithm: exc-c14n
WSSVerification ver = factory.newWSSVerification(X509Token.class,
callbackhandler);
concont.add(ver);
// Validate the WS-Security header
concont.validate(msgctx);