アプリケーションでより高度なマッピング機能を必要とする場合、 独自の J2EE コネクター (J2C) マッピング・モジュールを作成することができます。WebSphere Application Server バージョン 5.x で作成したマッピング・ログイン・モジュールは、WebSphere Application Server バージョン 6.0.x 以降でもサポートされています。
バージョン 5.x ログイン・モジュールを、接続ファクトリーのマッピング構成で使用できます。 これらのログイン・モジュールは、リソース・マネージャー接続ファクトリーの参照マッピング構成 においても使用できます。バージョン 5.x のマッピング・ログイン・モジュールは、カスタム・マッピング・プロパティー を使用できません。
バージョン 6.0.x 以降において新規マッピング・ログイン・モジュールを作成する場合は、 次のセクションで説明するプログラミング・インターフェースを使用します。
リソース参照マッピングのためのログイン・モジュールの呼び出し
javax.security.auth.callback.CallbackHandler インターフェース を実装する com.ibm.wsspi.security.auth.callback.WSMappingCallbackHandler クラスは、 WebSphere Application Server バージョン 6.0.x における新規 WebSphere Application Service Provider Programming Interface (SPI) です。
package com.ibm.wsspi.security.auth.callback; public class WSMappingCallbackHandlerFactory { private WSMappingCallbackHandlerFactory; public static CallbackHandler getMappingCallbackHandler( ManagedConnectionFactory mcf, HashMap mappingProperties); }
package com.ibm.wsspi.security.auth.callback; public class WSMappingCallbackHandler implements CallbackHandler { public WSMappingCallbackHandler(ManagedConnectionFactory mcf, HashMap mappingProperties); public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException; }
com.ibm.wsspi.security.auth.callback.WSManagedConnectionFactoryCallback com.ibm.wsspi.security.auth.callback.WSMappingPropertiesCallback
新規ログイン・モジュールは、 リソース・マネージャー接続ファクトリーの参照マッピング構成で使用される 2 つのコールバック・タイプを使用します。 WSManagedConnectionFactoryCallback コールバックは、 PasswordCredential クレデンシャルで設定する ManagedConnectionFactory インスタンスを提供します。この設定で、 ManagedConnectionFactory インスタンスは、PasswordCredential インスタンスがターゲットの エンタープライズ情報システム (EIS) インスタンスへのサインオンに使用されるかどうかを判別することができます。 WSMappingPropertiesCallback コールバックは、 カスタム・マッピング・プロパティーを含むハッシュ・マップを提供します。 com.ibm.mapping.authDataAlias プロパティー名が、 認証データ別名を設定するために予約されています。
com.ibm.ws.security.auth.j2c.WSManagedConnectionFactoryCallback com.ibm.ws.security.auth.j2c.WSAuthDataAliasCallback
接続ファクトリー・マッピングのためのログイン・モジュールの呼び出し
com.ibm.wsspi.security.auth.callback.WSManagedConnectionFactoryCallback com.ibm.wsspi.security.auth.callback.WSMappingPropertiesCallback
WSPrincipalMappingCallbackHandler ハンドラーおよび 2 つのコールバックは、 WebSphere Application Server バージョン 6 においては使用しないようにしてください。
マッピング・ログイン・モジュールへのリソース参照のマッピング・プロパティーの引き渡し
任意の カスタム・プロパティーをマッピング・ログイン・モジュールに渡すことができます。次の例は、 WebSphere Application Server のデフォルト・マッピング・ログイン・モジュールが認証データ別名プロパティー を検索する方法を示しています。
try { wspm_callbackHandler.handle(callbacks); String userID = null; String password = null; String alias = null; wspm_properties = ((WSMappingPropertiesCallback)callbacks[1]).getProperties(); if (wspm_properties != null) { alias = (String) wspm_properties.get(com.ibm.wsspi.security.auth.callback.Constants.MAPPING_ALIAS); if (alias != null) { alias = alias.trim(); } } } catch (UnsupportedCallbackException unsupportedcallbackexception) { . . . // error handling
MAPPING_ALIAS = "com.ibm.mapping.authDataAlias"
「リソース参照をリソースにマップ」パネルで、 「デフォルトの方式を使用」 > 「Select authentication data entry authentication」を クリックすると、管理コンソールは、自動的にマッピング・プロパティーに、 選択した認証データ別名値を持った MAPPING_ALIAS 記入項目を作成します。独自のカスタム・ログイン構成 を作成してから、デフォルトのマッピング・ログイン・モジュールを使用する場合は、リソース・ファクトリー参照 のマッピング・プロパティーに手動でこのプロパティーを設定する必要があります。
カスタム・ログイン・モジュールでは、 現行の実行スレッドの ID を表すサブジェクトは、WSSubject.getRunAsSubject メソッドを使用して検索できます。 現行の実行スレッドの ID は、RunAs ID と呼ばれます。RunAs サブジェクトには通常、 プリンシパル・セットの WSPrincipal プリンシパル、および 公開クレデンシャル・セットの WSCredential クレデンシャルが含まれます。 マッピング・モジュールによって作成されたサブジェクト・インスタンスには、 プリンシパル・セットの Principal インスタンス、および専用クレデンシャ ル・セットの PasswordCredential クレデンシャルまたは org.ietf.jgss.GSSCredential インスタンスが含まれます。
Java Cryptography Architecture (JCA) 仕様バージョン 1.0 で定義される GenericCredential インターフェース は、JCA バージョン 1.5 仕様では除去されています。GenericCredential インターフェースは、GenericCredential インターフェースに対してプログラミングされた従来のリソース・アダプター をサポートするために、WebSphere Application Server バージョン 6.0.x によってサポートされています。