ログイン・マッピング

ログイン・マッピングは、 ibm-webservices-bnd.xmi Extended Markup Language (XML) ファイルにあり、 マッピング構成が含まれています。 このマッピング構成は、Web Services Security ハンドラーがトークンの <ValueType> エレメント (メッセージ・ヘッダーから抽出されたセキュリティー・トークンに含まれている) を、対応する認証メソッドにマップする方法を定義しています。 トークンの <ValueType> エレメントは、SOAP メッセージ・ヘッダーから抽出されたセキュリティー・トークン内に含まれています。

重要: バージョン 5.x とバージョン 6 以降のアプリケーションには重要な相違点があります。 この情報は、WebSphere® Application Server バージョン 6.0.x 以降で使用されるバージョン 5.x アプリケーションのみをサポートしています。 この情報は、バージョン 6 以降のアプリケーションには適用されません。

送信側 Web Services Security ハンドラーは、 デプロイメント記述子に指定された <AuthMethods> エレメントを基にセキュリティー・トークンを生成および付加します。 例えば、認証メソッドが BasicAuth である場合、 送信側のセキュリティー・ハンドラーは UsernameToken (ユーザー名とパスワードの両方を伴う) を生成し、 SOAP メッセージ・ヘッダーに付加します。 Web Services Security ランタイムは、Java™ Authentication and Authorization Service (JAAS) の javax.security.auth.callback.CallbackHandler インターフェースをセキュリティー・プロバイダーとして使用して、クライアント側 (または Web サービスがクライアントとして機能している場合) にセキュリティー・トークンを生成します。

送信側のセキュリティー・ハンドラーは、javax.security.auth.callback.CallbackHandler インターフェース実装の handle() メソッドを呼び出します。 この実装は、セキュリティー・トークンを作成し、 そのトークンを送信側セキュリティー・ハンドラーに返します。 送信側セキュリティー・ハンドラーは、 コールバック配列内の認証情報に基づいてセキュリティー・トークンを作成します。 次に、セキュリティー・ハンドラーは、 セキュリティー・トークンを Web Services Security のメッセージ・ヘッダーに挿入します。

必要なセキュリティー・トークンを生成するために使用する CallbackHandler インターフェース実装は、Web Services Security バインディング・ファイル ibm-webservicesclient-bnd.xmi 内の <loginBinding> エレメントで定義されています。 以下に例を示します。
<loginBinding xmi:id="LoginBinding_1052760331526" authMethod="BasicAuth"
      callbackHandler="com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler"/>
<loginBinding> エレメントは、com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler インターフェースと BasicAuth 認証メソッドを関連付けます。 WebSphere Application Server は、さまざまなセキュリティー・トークン・タイプの作成に使用できる、以下のような CallbackHandler インターフェース実装のセットを提供します。
com.ibm.wsspi.wssecurity.auth.callback.GUIPromptCallbackHandler
ログイン・バインディング情報 (この情報は、HTTP 基本認証情報とは異なります) で基本認証データが定義されていない場合、 前のトークン・タイプは、ログイン・パネルを介してユーザー名とパスワードを求めるプロンプトを出します。 この実装は、 ログイン・バインディングで定義されている基本認証データを使用します。 この CallbackHandler は、BasicAuth 認証メソッドで使用してください。 この CallbackHandler 実装は、ログイン・バインディング情報を求めるプロンプトを出すため、サーバーでは使用しないでください。
com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler
基本認証データがログイン・バインディング (この情報は HTTP 基本認証情報とは異なります) で定義されていない場合、 この実装は、 標準入力 (stdin) を使用してユーザー名とパスワードを求めるプロンプトを出します。 この実装は、 ログイン・バインディングで定義されている基本認証データを使用します。 この CallbackHandler 実装は、BasicAuth 認証メソッドで使用してください。 この CallbackHandler 実装は、ログイン・バインディング情報を求めるプロンプトを出すため、サーバーでは使用しないでください。
制約事項: クライアントがマルチスレッド化されており、複数のスレッドが同時に標準から読み取りを行おうとすると、すべてのスレッドは、ユーザー名とパスワード情報を正常に取得しません。そのため、複数のスレッドが同時に標準からデータを取得することがある、マルチスレッド化されたクライアントで com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler 実装を使用することはできません。
com.ibm.wsspi.wssecurity.auth.callback.NonPromptCallbackHandler
この CallbackHandler 実装はプロンプトを出しません。 その代わり、 ログイン・バインディング (この情報は HTTP 基本認証情報とは異なります) で定義された基本認証データを使用します。 この CallbackHandler 実装は、BasicAuth 認証メソッドで使用するためのものです。 この CallbackHandler 実装用に、ログイン・バインディング情報で基本認証データを定義する必要があります。 この実装は、Web サービスがクライアントとして実行されているときに、 ダウンストリーム・コールに基本認証 (<wsse:UsernameToken>) を送信する必要がある場合に使用できます。
com.ibm.wsspi.wssecurity.auth.callback.LTPATokenCallbackHandler
CallbackHandler は、現行の WebSphere Application Server セキュリティー・コンテキストの run as JAAS サブジェクト (呼び出しサブジェクト) から、Lightweight Third Party Authentication (LTPA) トークンを生成します。しかし、ログイン・バインディング情報 (HTTP 基本認証情報ではありません) に基本認証データが定義されている場合、 この実装は、基本認証データと生成された LTPA トークンを使用します。 トークン・タイプ URI 値とトークン・タイプ・ローカル名 値は、この CallbackHandler 実装のログイン・バインディング情報で定義されていなければなりません。 トークン値の型を使用して、要求の送信側と受信側のバインディング構成に対するトークンを妥当性検査します。 Web Services Security ランタイムは、 LTPA トークンをバイナリー・セキュリティー・トークン (<wsse:BinarySecurityToken>) としてメッセージ SOAP ヘッダーに挿入します。 値の型は必須です。 (詳しくは LTPA を参照。) この CallbackHandler 実装は、LTPA 認証メソッドで使用してください。
図 1 に、要求送信側メッセージ処理における送信側セキュリティー・ハンドラーを示します。
図 1. 要求送信側の SOAP メッセージ処理要求送信側の SOAP メッセージ処理
受信側セキュリティー・サーバーは、 複数の認証メソッドと複数のセキュリティー・トークンのタイプをサポートするように構成できます。 以下のステップでは、 要求送信側 SOAP メッセージ処理について説明します。
  1. 受信側 Web Services Security ハンドラーは、メッセージを受け取ると、 (メッセージ・ヘッダー内の) トークン・タイプとデプロイメント記述子内に構成されている予想トークン・タイプを比較します。
  2. Web Services Security ハンドラーは、 メッセージ・ヘッダーからセキュリティー・トークンを抽出し、 トークンの <ValueType> エレメントを対応する認証メソッドにマップします。 マッピング構成は、ibm-webservices-bnd.xmi XML ファイル内の <loginMappings> エレメントで定義されます。 以下に例を示します。
    <loginMappings xmi:id="LoginMapping_1051977980074" authMethod="LTPA"
          configName="WSLogin">
         <callbackHandlerFactory xmi:id="CallbackHandlerFactory_1051977980081"
         classname="com.ibm.wsspi.wssecurity.auth.callback.WSCallbackHandlerFactoryImpl"/>
          <tokenValueType xmi:id="TokenValueType_1051977980081"
          uri="http://www.ibm.com/websphere/appserver/tokentype/5.0.2" localName="LTPA"/>
    </loginMappings>

    com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory インターフェースは、 javax.security.auth.callback.CallbackHandler のファクトリーです。

  3. Web Services Security ランタイムは、 ファクトリー実装クラスを開始し、set メソッドを介して Web Services Security ヘッダーからファクトリー・クラスに認証情報を渡します。
  4. Web Services Security ランタイムは、newCallbackHandler() メソッドを呼び出して、必要なセキュリティー・トークンを生成する javax.security.auth.CallbackHandler オブジェクトを取得します。
  5. セキュリティー・ハンドラーは、LTPA BinarySecurityToken を受け取ると、WSLogin JAAS ログイン構成と newCallbackHandler() メソッドを使用して、セキュリティー・トークンを妥当性検査します。 予想されるトークン・タイプが SOAP メッセージの Web Services Security ヘッダーにない場合、 要求は SOAP 障害でリジェクトされます。 それ以外の場合は、トークン・タイプを使用してトークン検証用の JAAS ログイン構成にマップします。 認証に成功すると、 JAAS サブジェクトが作成され、実行中のスレッドに関連付けられます。 認証に失敗した場合は、SOAP 障害が出されて、要求はリジェクトされます。
    次の表に、認証メソッドと JAAS ログイン構成を示します。
    表 1. 認証メソッドおよび JAAS ログイン構成. 認証メソッドは、トークン検証用の JAAS ログイン構成に マップします。
    認証メソッド JAAS ログイン構成
    BasicAuth WSLogin
    シグニチャー system.wssecurity.Signature
    LTPA WSLogin
    IDAssertion system.wssecurity.IDAssertion
    図 2 に、要求受信側のメッセージ処理における受信側セキュリティー・ハンドラーを示します。
    図 2. 要求受信側の SOAP メッセージ処理要求受信側の SOAP メッセージ処理
    デフォルトの <LoginMapping> は、以下のファイルで定義されます。
    • セル・レベル ws-security.xml およびサーバー・レベル ws-security.xml ファイル
    バインディング・ファイル情報で何も定義されていない場合は、 ws-security.xml のデフォルトが使用されます。 しかし、管理者は、バインディング・ファイルに新規 <LoginMapping> エレメントを定義することにより、 デフォルトをオーバーライドできます。
  6. クライアントは、${install_dir}/properties/ws-security.xml ファイル内のデフォルト・バインディング情報を読み取ります。
  7. サーバーのランタイム・コンポーネントは、以下のファイルをロードします (ファイルが存在する場合)。
    • セル・レベル ws-security.xml ファイルおよびサーバー・レベル ws-security.xml ファイル。 これら 2 つのファイルは、 ランタイムにマージされ、1 つの有効なデフォルト・バインディング情報のセットになります。

    基本アプリケーション・サーバーでは、サーバーのランタイム・コンポーネントはサーバー・レベルの ws-security.xml ファイルのみをロードします。 サーバー側の ws-security.xml ファイルおよびアプリケーションの Web Services Security バインディング情報は、管理コンソールを使用して管理されます。 アプリケーションのデプロイメント中に管理コンソールを使用してバインディング情報を指定できます。 Web Services Security ポリシーは、デプロイメント記述子拡張 (ibm-webservicesclient-ext.xmi) で定義され、バインディングは IBM® バインディング拡張 (ibm-webservicesclient-bnd.xmi) に格納されます。しかし、クライアントの場合、${install_dir}/properties/ws-security.xml ファイルでデフォルト・バインディング値を定義します。バインディング情報がバインディング・ファイルで指定されていない場合、ランタイムはデフォルトの ${install_dir}/properties/ws-security.xml ファイルからバインディング情報を読み取ります。


トピックのタイプを示すアイコン 概念トピック



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