WSSEncryptPart API を使用した暗号化パーツの追加

構成用ポリシー・セットを使用しなくても、Web Services Security API (WSS API) を使用することで SOAP メッセージをセキュアにすることができます。 暗号化パーツを要求生成プログラム (クライアント側) バインディング用に構成するには、 WSSEncryptPart API を使用して定義し、暗号化パーツのエレメントのリストに追加します。 WSSEncryptPart は、com.ibm.websphere.wssecurity.wssapi.encryption パッケージに含まれるインターフェースです。

始める前に

WSS API を使用するか、または管理コンソールでポリシー・セットを構成するかして、 暗号化パーツを使用可能にできます。 SOAP メッセージをセキュアにするには、必要に応じて WSS API を使用して以下の暗号化タスクを実行します。

  • WSSEncryption API を使用して、暗号化を構成し、暗号化方式を選択します。
  • 必要に応じて WSSEncryptPart API を使用して 暗号化パーツを構成します。

このタスクについて

機密性設定では、生成されたメッセージに機密性の制約が適用される必要があります。 これらの制約には、暗号化する必要がある、生成メッセージ内のメッセージ・パーツを指定することと、 暗号化されたエレメントの付加先のメッセージ・パーツを指定することも含まれます。 ジェネレーター側の暗号化情報は、 発信 SOAP メッセージを暗号化するために使用されます。 要求生成プログラムは、クライアント用に構成されます。

WSSEncryptPart API で暗号化パーツに関連した情報を指定し、メッセージ機密性の保護用に追加されている暗号化パーツを設定します。 WSSEncryptPart を使用して、変換方式の設定と、変換方式の適用先であるパーツの指定を行います。 変換方式は、SOAP with Attachments を使用する場合にのみ設定します。WSSEncryptPart は、変換方式の設定などのタスクの場合を除き、通常は必要ありません。

メッセージの機密性を保護するために、次の表に表示される暗号化パーツおよび関連情報が使用されます。

表 1. 暗号化パーツ. 暗号化パーツを使用してメッセージを保護します。
暗号化パーツ 説明
part WSSEncryptPart オブジェクトを暗号化パーツのターゲットとして追加します。
keyword

キーワードを使用して暗号化パーツを追加します。 キーワードを使用して追加できるデフォルトの暗号化パーツは、 BODY_CONTENT と SIGNATURE です。 WebSphere® Application Server は、以下のキーワードの使用をサポートしています。

  • BODY_CONTENT
  • SIGNATURE
xpath XPath 式を使用して暗号化パーツを追加します。
シグニチャー WSSSignature コンポーネントを暗号化パーツのターゲットとして追加します。

WSSSignature は、SOAP メッセージにシグニチャー・エレメントが含まれている場合にのみ適用されます。

header SOAP ヘッダー (QName で指定する) を暗号化パーツのターゲットとして追加します。
securityToken SecurityToken オブジェクトを暗号化パーツのターゲットとして追加します。

暗号化パーツでは、ある決まったデフォルトの動作が行われます。 WSSEncryptPart API を使用する一番簡単な方法は、デフォルトの動作を使用することです。 WSSEncryptPart API は、変換アルゴリズムの指定、オブジェクトのターゲットとしての設定、 暗号化パーツ (SOAP 本体の内容、シグニチャーなど) の指定用のデフォルトを提供します。

暗号化のデフォルトの動作には、以下のものがあります。

表 2. 暗号化パーツの決定内容. いくつかの暗号化メッセージ・パーツは、デフォルトで設定されます。
暗号化パーツの決定内容 デフォルトの動作
キーワードを使用して暗号化する SOAP メッセージ・パーツ

暗号化パーツ用に使用するキーワードを指定します。 WebSphere Application Server は、暗号化のためにデフォルトで以下の SOAP メッセージを設定します。

  • WSSEncryption.BODY_CONTENT
  • WSSEncryption.SIGNATURE
追加する変換方式

WebSphere Application Server は、 デフォルトでは変換方式を何も指定しません。SOAP with Attachments を使用する場合のみ、変換方式を指定します。

手順

  1. WSSEncryptPart API を使用して SOAP メッセージを暗号化するには、 最初に、アプリケーション・サーバーがインストールされていることを確認します。
  2. WSSEncryptPart を使用した WSS API プロセスでは、以下のステップを実行します。
    1. WSSFactory.getInstance() を使用して WSS API 実装インスタンスを取得します。
    2. WSSFactory インスタンスから WSSGenerationContext インスタンスを作成します。
    3. WSSFactory から SecurityToken を作成して、暗号化を構成します。
    4. SecurityToken を使用して WSSFactory インスタンスから WSSEncryption を作成します。
    5. WSSFactory から WSSEncryptPart を作成します。
    6. WSSEncryptPart の変換を使用して暗号化および適用するパーツを追加します。 WebSphere Application Server は、 WSSEncryptPart のために、デフォルトで暗号化パーツ BODY_CONTENT および SIGNATURE を設定します。他の暗号化パーツを追加した後では、これらのデフォルト値は無効になります。例えば、addEncryptPart(securityToken, false) を呼び出す場合、 セキュリティー・トークンのみが暗号化され、シグニチャーと本体の内容は暗号化されません。 したがって、 セキュリティー・トークン、シグニチャー、および本体の内容を暗号化解除する場合は、 addEncryptPart(securityToken, false)、addEncryptPart(WSSEncryption.SIGNATURE)、 および addEncryptPart(WSSEncrypyion.BODY_CONTENT) を呼び出す必要があります。
    7. 変換方式を設定します。
    8. WSSEncryptPart を WSSEncryption に追加します。
    9. WSSEncryption を WSSGenerationContext に追加します。
    10. SOAPMessageContext を使用して WSSGenerationContext.process() を呼び出します。

タスクの結果

メッセージ・パーツの暗号化時にエラー条件が生じると、WSSException が発生します。 正常な場合、API が WSSGenerationContext.process() を呼び出し、WS-Security ヘッダーが生成されて、SOAP メッセージが Web Services Security を使用して保護されます。

次のタスク

暗号化パーツを要求生成プログラム (クライアント側) バインディング用に使用可能にした後、 同一パーツを応答コンシューマー (クライアント側) バインディング用に暗号化解除するように指定する必要があります。 次に、暗号化解除および暗号化解除パーツを構成するために、 WSS API を使用するか、または管理コンソールでポリシー・セットを構成します。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_confwssencryptsecretkey
ファイル名:twbs_confwssencryptsecretkey.html