ID アサーション認証メソッド
ID アサーション (IDAssertion) 認証メソッドを使用した場合、 生成されるセキュリティー・トークンは <wsse:UsernameToken> エレメントとなります。 そこには <wsse:Username> エレメントが含まれます。
要求送信側では、コールバック・ハンドラーを起動してセキュリティー・トークンを生成します。 要求受信側ではそのセキュリティー・トークンを検証します。 この 2 つの操作 (トークンの生成とトークンの検証) については、以降のセクションで説明します。
ID アサーション・トークンの検証:
要求受信側は、SOAP メッセージから IDAssertion セキュリティー・トークンを取得し、Java™ Authentication and Authorization Service (JAAS) ログイン・モジュールを使用してそのセキュリティー・トークンを検証します。ID アサーションでは、その ID を実行スレッドの設定済み ID と確認する前に、 信頼を確立するための特別な処理が必要です。 この特別な処理は、 デプロイメント記述子ファイル ibm-webservices-ext.xmi に 含まれる <IDAssertion> エレメントで定義されます。 検証チェックがすべて正常に終了したら、 表明された ID が実行スレッドの ID として設定されます。 検証に失敗した場合は、SOAP 障害例外が出されて、要求はリジェクトされます。
JAAS ログイン構成は、 バインディング・ファイルの <LoginMapping> エレメントで指定します。 デフォルト・バインディングは、 ws-security.xml ファイルで指定します。 しかし、アプリケーション固有の ibm-webservices-bnd.xmi ファイルを使用してそのバインディングをオーバーライドすることができます。 構成情報は、CallbackHandlerFactory と ConfigName で構成されています。 CallbackHandlerFactory は、 JAAS CallbackHandler オブジェクトの作成に使用されるクラスの名前を指定します。 WebSphere Application Server は、com.ibm.wsspi.wssecurity.auth.callback.WSCallbackHandlerFactoryImpl CallbackHandlerFactory 実装を提供します。ConfigName は、JAAS 構成名エントリーを指定します。
WebSphere Application Server は、security.xml ファイルで一致する構成名エントリーを検索します。一致するものが見つからない場合は、wsjaas.conf ファイルを検索します。 WebSphere Application Server では、ID アサーションの認証メソッドに適した system.wssecurity.IDAssertion というデフォルトの構成エントリーが提供されます。
ibm-webservices-ext.xmi デプロイメント記述子 ファイルの <IDAssertion> エレメントによって、 ID アサーション認証メソッドを使用する際に必要な特別の処理が指定されます。 <IDAssertion> エレメント は、<IDType> と <TrustMode> の 2 つの サブエレメントで構成されています。
- ユーザー名
- 識別名 (DN)
- X.509 証明書 (X.509 certificate)
<IDType> が username である場合は、 ユーザー名トークン (Bob など) が提供されます。 このユーザー名は、ユーザー・レジストリー内のユーザーにマップされ、 信頼性が正常に検証された後はこのユーザー名が表明された ID になります。 <IDType> 値が DN である場合は、 識別名を含むユーザー名トークン (例えば cn=Bob Smith, o=ibm, c=us) が 提供されます。 この DN は、ユーザー・レジストリー内のユーザーにマップされ、 信頼性が正常に検証された後はこのユーザーが表明された ID になります。 <IDType> が X509Certificate である場合は、X509 証明書を 含むバイナリー・セキュリティー・トークンが提供され、 その証明書から SubjectDN 値 (例えば cn=Bob Smith, o=ibm, c=us) が抽出されます。 この SubjectDN 値は、ユーザー・レジストリー内のユーザーにマップされ、 信頼性が正常に検証された後はこのユーザーが表明された ID になります。
- シグニチャー
- BasicAuth
- 指定なし
<TrustMode> 値が Signature である場合は、署名が検証されます。次に、署名者 (例えば cn=IBM Authority, o=ibm, c=us) が、 ユーザー・レジストリー内の ID (IBMAuthority など) にマップされます。 表明権限が信頼できることを確認するために、マップされた ID (IBMAuthority など) は、トラステッド ID のリストに照らして検証されます。 <TrustMode> エレメントが BasicAuth である場合は、 ユーザー名トークンに、表明権限のあるユーザー名とパスワードが含まれています。
このユーザー名とパスワードが検証されます。 検証が正常に終了すると、そのユーザー名 (IBMAuthority など) が、 トラステッド ID のリストに照らして検証されます。 <TrustMode> の値が指定されていない場合は、 信頼されていると見なされ、それ以上のトラスト検証は行われません。 このタイプの ID アサーションは、推定トラスト・モード と呼ばれています。推定トラスト・モードは、 他の何らかのメカニズムを使用して信頼性が確立されている環境でのみ使用してください。
上記の検証がすべて正常に終了したら、 表明された ID (Bob など) が実行スレッドの ID として設定されます。 検証のいずれかが失敗した場合は、SOAP 障害例外が出されて、要求はリジェクトされます。