ここでは、アセンブリー・ツールを使用したプラグ可能なトークンの構成方法について説明します。
始める前に
重要: バージョン 5.x とバージョン 6 以降のアプリケーションとの間には重要な相違点があります。
この資料の情報は、WebSphere Application Server バージョン 6.0.x 以降で使用されるバージョン 5.x アプリケーションのみをサポートしています。この情報はバージョン 6.0.x
以降のアプリケーションには適用されません。
この資料では、要求送信側 (ibm-webservicesclient-ext.xmi および ibm-webservicesclient-bnd.xmi ファイル) と要求受信側 (ibm-webservices-ext.xmi および ibm-webservices-bnd.xmi ファイル) にプラグ可能トークンを構成する方法について説明します。
要求送信側と要求受信側はペアになっているので、その両方にプラグ可能トークンが必要です。
受信側が要求を受け入れるためには、要求送信側と要求受信側が一致している必要があります。
以下のステップを実行するには、
Java 2 Platform, Enterprise Edition (J2EE) 仕様に基づいて Web サービスが作成済みであることが前提になります。
サーバーの Web サービス・セキュリティー・バインディング情報を管理する方法の概要については、以下のいずれかのトピックを参照してください。
このタスクについて
アセンブリー・ツールを使用して、必要なトークンに関して ibm-webservicesclient-ext.xmi および ibm-webservices-ext.xmi ファイル内でセキュリティー制約を指定する必要があります。
以下のステップを実行して、ibm-webservicesclient-ext.xmi および ibm-webservicesclient-bnd.xmi ファイルを使用して要求送信側を構成します。
プロシージャー
- アセンブリー・ツールを起動します。
アセンブリー・ツールの詳細については、
アセンブリー・ツール
を参照してください。
- 「J2EE パースペクティブ」に切り替えます。「ウィンドウ」>「パースペクティブのオープン」>「J2EE」とクリックします。
- 「アプリケーション・クライアント・プロジェクト」>「application_name」>「appClientModule」>「META-INF」とクリックします。
- application-client.xml ファイルを右マウス・ボタンでクリックし、
「開く」>「デプロイメント記述子エディター」とクリックします。
- 「WS Extension」タブをクリックします。 Web Service Client Security Extensions
エディターが表示されます。
- 「Service References」の下で、既存のサービス参照を選択するか、「追加」をクリックして新規の参照を作成します。
- 「Port Qname Bindings」の下で、選択したサービス参照の既存のポート修飾名を選択するか、「追加」をクリックして新規のポート名バインディングを作成します。
- 「Request Sender Configuration: Login Configuration」の下で、既存の認証メソッドを選択するか、編集可能なリスト・ボックスに新規の認証メソッドを入力します (Lightweight Third Party Authorization (LTPA) は、Web サービスがクライアントとして動作する場合にサポートされるトークン生成です)。
- 「ファイル」>「保管」とクリックして、変更内容を保管します。
- 「Web services client binding」タブをクリックします。 Web Services Client Binding
エディターが表示されます。
- 「Port qualified name binding」の下で、既存のエントリーを選択するか、「追加」をクリックして新規のポート名バインディングを追加します。
選択したポートに対して Web services client binding エディターが表示されます。
- 「Login binding」の下の「編集」または「使用可能」をクリックします。
「Login Binding」ダイアログ・ボックスが表示されます。
- 「認証メソッド」フィールドに認証メソッドを入力します。
このフィールドに入力する認証メソッドは、同じ Web サービス・ポートの「Security Extension」タブで定義する認証メソッドと一致している必要があります。
このフィールドは必須です。
- (オプショナル) 「URI」フィールドおよび「Local name」フィールドにトークン値タイプを入力します。これらのフィールドは、BasicAuth、Signature、および IDAssertion の認証メソッドでは無視されますが、その他の認証メソッドでは必須です。
トークン値タイプの情報は、バイナリー・セキュリティー・トークンの <wsse:BinarySecurityToken>@ValueType エレメントに挿入され、XML ベースのトークンのネーム・スペースとして使用されます。
- Java Authentication and Authorization Service (JAAS) のインプリメンテーションである javax.security.auth.callback.CallbackHandler インターフェースを入力します。このフィールドは必須です。
- 「ユーザー ID」フィールドおよび「パスワード」フィールドに、基本認証情報を入力します。基本認証情報は、CallbackHandler のインプリメンテーションの構成体に渡されます。
基本認証情報の使用法は CallbackHandler のインプリメンテーションによって異なります。
- 「プロパティー」フィールドに名前と値のペアを追加します。定義されたペアは、CallbackHandler の
インプリメンテーションの構成体に java.util.Map 値として渡されます。
- 「OK」をクリックします。
「Web services client port binding」タブで「Login binding」の下の「Disable」をクリックして、認証メソッドのログイン・バインディングを除去します。
- 「ファイル」>「保管」とクリックして、変更内容を保管します。
- 「Package Explorer」ウィンドウで、webservices.xml
ファイルを右マウス・ボタンでクリックし、「開く」>「Web services editor」とクリックします。 「Web サービス」ウィンドウが表示されます。
- 「Security extensions」タブをクリックします。 Web service
security extensions エディターが表示されます。
- 「Web Service Description Extension」の下で、既存のサービス参照を選択するか、「追加」をクリックして新規の拡張を作成します。
- 「Port Component Binding」の下で、選択したサービス参照の既存のポート修飾名を選択するか、「追加」をクリックして新規に作成します。
- 「Request Receiver Service Configuration Details: Login Configuration」の下で、既存の認証メソッドを選択するか、「追加」をクリックして、表示される「Add AuthMethod」フィールドに新規のメソッドを入力します。
要求受信側に対して複数の認証メソッドを選択できます。
着信メッセージのセキュリティー・トークンは、リストで指定された順序で認証メソッドに対して認証されます。
選択した 1 つ以上の認証メソッドを除去するには、「除去」をクリックします。
- 「ファイル」>「保管」とクリックして、変更内容を保管します。
- 「バインディング」タブをクリックします。 Web Services Binding
エディターが表示されます。
- 「Web サービス記述バインディング」の下で、既存のエントリーを選択するか、「追加」をクリックして新規の Web サービス記述子を追加します。
- 「Binding configurations」タブをクリックします。選択した Web サービス記述子の Web Services Binding Configurations エディターが表示されます。
- 「Request receiver binding configuration details: login mapping」の下で、「追加」をクリックして新規のログイン・マッピングを作成するか、「編集」をクリックして選択したログイン・マッピングを編集します。「Login mapping」ダイアログが表示されます。
- 「認証メソッド」フィールドに認証メソッドを入力します。
このフィールドに入力する情報は、同じ Web サービス・ポートの「Security Extensions」タブで定義する認証メソッドと一致している必要があります。
このフィールドは必須です。
- 「Configuration name」フィールドに JAAS ログイン構成名を入力します。これは必須フィールドです。JAAS ログイン構成名は、WebSphere Application Server 管理コンソールの「セキュリティー」>「グローバル・セキュリティー」の下に定義する必要があります。「認証」の下で「JAAS 構成」>「アプリケーション・ログイン」とクリックします。
詳しくは、Java Authentication and Authorization Service のプログラマチック・ログインの構成
を参照してください。
- (オプショナル) 「Use Token value type」を選択し、「URI」フィールドおよび「Local name」フィールドにトークン値タイプ情報を入力します。
この情報は、BasicAuth、Signature および IDAssertion 認証メソッドではオプショナルですが、その他の認証メソッドでは必須です。
トークン値タイプは、バイナリー・セキュリティー・トークンの <wsse:BinarySecurityToken>@ValueType エレメントの検証、および XML ベースのトークンのネーム・スペースの検証に使用されます。
- 「Callback Handler Factory」の下で、com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory インターフェースのインプリメンテーションを「クラス名」フィールドに入力します。このフィールドは必須です。
- 「Callback Handler Factory Property」の下で、「追加」をクリックして、「Callback Handler Factory Property」の名前と値のペアを入力します。入力した名前と値のペアは、java.util.Map として com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory.init() メソッドに渡されます。
これらの名前と値のペアの使用法は、CallbackHandlerFactory のインプリメンテーションによって決定されます。
- 「Login Mapping Property」の下の「追加」をクリックし、「Login mapping property」の名前と値のペアを入力します。入力した名前と値のペアは、JAAS ログイン・モジュールで、com.ibm.wsspi.wssecurity.auth.callback.PropertyCallback JAAS
コールバック・インターフェースを通して使用可能です。選択したログイン・マッピングを削除するには、「除去」をクリックします。
- 「OK」をクリックします。
- 「ファイル」>「保管」とクリックして、変更内容を保管します。
結果
上記のステップでは、Simple Object Access Protocol (SOAP) メッセージでセキュリティー・トークンを作成するように要求送信側を構成し、着信 SOAP メッセージ内で検出されたセキュリティー・トークンを検証するように要求受信側を構成する方法を定義しています。
WebSphere Application Server は、プラグ可能セキュリティー・トークンをサポートしています。
ログイン・バインディングおよびログイン・マッピングに定義されている認証メソッドを使用して、要求送信側でセキュリティー・トークンを生成し、要求受信側でセキュリティー・トークンを検証できます。
次の作業
プラグ可能トークンを構成した後に、クライアントおよびサーバーの両方を、プラグ可能トークンをサポートするように構成する必要があります。
クライアントおよびサーバーを構成するには、以下のトピックを参照してください。