WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化
             New or updated topic for this feature pack

要求署名方式に関するクライアントの構成

WSSSignature API と WSSSignPart API を使用して署名方式を選択します。 要求署名方式には、シグニチャー方式、正規化方式、 ダイジェスト方式、および変換方式があります。

始める前に

初めに、クライアントによって送信されるメッセージのどのパーツにデジタル署名しなければならないかを WSS API を使用して、または管理コンソールでポリシー・セットを構成して指定する必要があります。

このタスクについて

以下の表で、この情報の目的を説明しています。これらの定義の一部は、XML-Signature 仕様 (Web サイト http://www.w3.org/TR/xmldsig-core にあります) を基にしています。

表 1. シグニチャー方式
方式の名前 説明
正規化アルゴリズム シグニチャー操作の一部としてダイジェストされる前に、<SignedInfo> エレメントを正規化します。
署名アルゴリズム 正規化された <SignedInfo> エレメントのシグニチャー値を計算します。クライアント要求送信側構成用に選択したアルゴリズムは、サーバー要求受信側構成で選択したアルゴリズムと一致している必要があります。
変換方式 シグニチャー操作の一部としてダイジェストされる前に、 署名するパーツを変換します。
ダイジェスト方式 変換されたパーツのダイジェスト値を計算します。 クライアント要求送信側構成用に選択したアルゴリズムは、サーバー要求受信側構成で選択したアルゴリズムと一致している必要があります。

署名アルゴリズム方式の構成は、WSS API を使用して行うことも、管理コンソールでポリシー・セットを構成して行うこともできます。WSS API を使用する場合は、 WSSSignature API と WSSSignPart API を使用して、クライアントを要求署名用に構成するときにどのメッセージ・パーツにデジタル署名するかを指定します。

WSSSignature API と WSSSignPart API では、以下のステップを実行して、署名アルゴリズム方式と署名パーツ・アルゴリズム方式を構成します。

プロシージャー

  1. ジェネレーター・バインディングの場合、WSSSignature API でシグニチャー方式を指定します。 WebSphere Application Server は、以下の事前構成されたシグニチャー方式をサポートします。
    • WSSSignature.RSA_SHA1 (デフォルト値): http://www.w3.org/2000/09/xmldsig#rsa-sha1
    • WSSSignature.HMAC_SHA1: http://www.w3.org/2000/09/xmldsig#hmac-sha1
    WSS API の場合、WebSphere Application Server は、 DSA-SHA1 デジタル署名方式 (http://www.w3.org/2000/09/xmldsig#dsa-sha1) をサポートしません。
  2. ジェネレーター・バインディングの場合、WSSSignature API で正規化方式を指定します。 WebSphere Application Server は、以下の事前構成された正規化アルゴリズムをサポートします。
    • WSSSignature.EXC_C14N (デフォルト値): 排他的正規化アルゴリズム (http://www.w3.org/2001/10/xml-exc-c14n#)
    • WSSSignature.C14N: 包括的正規化アルゴリズム (http://www.w3.org/2001/10/xml-c14n#)
  3. ジェネレーター・バインディングの場合、WSSSignPart API でダイジェスト方式を指定します。 WebSphere Application Server は、以下の事前構成ダイジェスト方式をサポートします。
    • WSSSignPart.SHA1 (デフォルト値): http://www.w3.org/2000/09/xmldsig#sha1
    • WSSSignPart.SHA256: http://www.w3.org/2001/04/xmlenc#sha256
    • WSSSignPart.SHA512: http://www.w3.org/2001/04/xmlenc#sha512
  4. ジェネレーター・バインディングの場合、WSSSignPart API で変換方式を指定します。 WebSphere Application Server は、 以下の事前構成済み変換アルゴリズムをサポートします。
    • WSSSignPart.TRANSFORM_EXC_C14N (デフォルト値): http://www.w3.org/2001/10/xml-exc-c14n#
    • WSSSignPart.TRANSFORM_XPATH2_FILTER: http://www.w3.org/2002/06/xmldsig-filter2
    • WSSSignPart.TRANSFORM_STRT10: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
    • WSSSignPart.TRANSFORM_ENVELOPED_SIGNATURE: http://www.w3.org/2000/09/xmldsig#enveloped-signature
    WSS API の場合、WebSphere Application Server は以下の変換アルゴリズムをサポートしません。
    • http://www.w3.org/TR/1999/REC-xpath-19991116
    • http://www.w3.org/2002/07/decrypt#XML

結果

WSS API を使用して、クライアントがメッセージをサーバーに送信する際にメッセージのデジタル署名に使用するアルゴリズム方式を指定しました。

以下の例は、署名情報、 すなわちシグニチャー方式として HMAC_SHA1、正規化方式として C14N、ダイジェスト方式として SHA256、変換方式として EXC_C14N および TRANSFORM_STRT10 を指定するためのサンプル・コードです。

	  //get the message context
Object msgcontext = getMessageContext();
	  
	  //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);

	  //set the part specified by WSSSignPart
	  WSSSignPart sigPart = factory.newWSSSignPart();
	
	  //set the digest method
 	  // DEFAULT: WSSSignPart.SHA1
	  sigPart.setDigestMethod(WSSSignPart.SHA256);

	  //add the transform method
	  // DEFAULT: WSSSignPart.TRANSFORM_EXC_C14N
	  sigPart.addTransformMethod(WSSSignPart.TRANSFORM_EXC_C14N);
	  sigPart.addTransformMethod(WSSSignPart.TRANSFORM_STRT10);

    // add the WSSSignPart to the WSSSignature
    sig.addSignPart(sigPart);	  
		  
	  //add the WSSSignature to the WSSGenerationContext
	  gencont.add(sig);
		
	  //generate the WS-Security header
gencont.process(msgcontext);

次の作業

メッセージにデジタル署名してアルゴリズム方式を選択するようにクライアントを構成した後、 要求署名のデジタル署名を検証してアルゴリズム方式を選択するようにサーバーを構成する必要があります。

管理コンソールでポリシー・セットを構成して、 署名検証情報および方式をサーバーに構成します。




関連タスク
twbs_confwssverifyalgorithms.html
WSS API を使用してメッセージの保全性を保護するための、 ジェネレーター署名情報の構成
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_confwsssignalgorithms.html