J2C プリンシパル・マッピング・モジュール
アプリケーションでより高度なマッピング機能を必要とする場合、 独自の 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"
「リソース参照をリソースにマップ」パネルで、
をクリックすると、管理コンソールは、自動的にマッピング・プロパティーに、選択した認証データ別名値を持った MAPPING_ALIAS 記入項目を作成します。独自のカスタム・ログイン構成 を作成してから、デフォルトのマッピング・ログイン・モジュールを使用する場合は、リソース・ファクトリー参照 のマッピング・プロパティーに手動でこのプロパティーを設定する必要があります。カスタム・ログイン・モジュールでは、 現行の実行スレッドの ID を表すサブジェクトは、WSSubject.getRunAsSubject メソッドを使用して検索できます。 現行の実行スレッドの ID は、RunAs ID と呼ばれます。RunAs サブジェクトには通常、 プリンシパル・セットの WSPrincipal プリンシパル、および 公開クレデンシャル・セットの WSCredential クレデンシャルが含まれます。 マッピング・モジュールによって作成されたサブジェクト・インスタンスには、 プリンシパル・セットの Principal インスタンス、および専用クレデンシャ ル・セットの PasswordCredential クレデンシャルまたは org.ietf.jgss.GSSCredential インスタンスが含まれます。
J2EE コネクター・アーキテクチャー (JCA) 仕様バージョン 1.0 で定義される GenericCredential インターフェースは、JCA バージョン 1.5 仕様では非推奨です。