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