このインターフェースをインプリメントすると、WebSphere Application Server セキュリティーで カスタム・レジストリーが使用できるようになります。この機能により、java.rmi ファイルが拡張されます。 リモート・レジストリーを使用すると、このプロセスをリモート側で完了することができます。
public void initialize(java.util.Properties props)
throws CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、初期化メソッドはユーザーおよびグループの情報を含むレジストリー・ファイルの名前を取得します。
このメソッドは、サーバー立ち上げ時にレジストリーを初期化するために呼び出されます。 また、このメソッドは、セキュリティーがオンの場合、管理コンソールが検証を行なう場合にも呼び出されます。 このメソッドは、バージョン 4.x のものと同じです。
public String checkPassword(String userSecurityName, String password)
throws PasswordCheckFailedException,
CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、mapCertificate メソッドは証明書チェーンから識別名 (DN) を入手し、ユーザーを戻す前にそれがレジストリー内で有効なユーザーであるか確認します。 サンプルでは、checkPassword メソッドは、ユーザー・レジストリー内の名前とパスワードの組み合わせをチェックし、 これらが一致する場合は認証済みのユーザーを戻します。
このメソッドは様々なシナリオで呼び出されます。例えば、ユーザー・レジストリーが初期化された後でユーザー情報の妥当性検査を行うために管理コンソールによって呼び出されます。 また、このメソッドは、ユーザーを認証するために製品の保護リソースにアクセスすると、許可を続行する前に呼び出されます。このメソッドは、バージョン 4.x のものと同じです。
public String mapCertificate(X509Certificate[] cert)
throws CertificateMapNotSupportedException,
CertificateMapFailedException,
CustomRegistryException,
RemoteException;
このメソッドは、認証のために証明書が提供されるときに呼び出されます。 Web アプリケーションの場合、 認証制約がアプリケーションの web.xml ファイルで CLIENT-CERT に設定されていると、 このメソッドが呼び出され、証明書をレジストリー内の有効なユーザーにマップします。 Java クライアントの場合、このメソッドは、トラン スポート層の認証を使用しているときに、トランスポート層にクライアント証明書をマップする ために呼び出されます。 CSIv2 認証プロトコルを使用した ID アサーション・トークンが証明書を含めるように設定されている場合には、このメソッドが呼び出され、有効なユーザーに証明書がマップされます。
WebSphere Application Server バージョン 4.x では、入力パラメーターは X509Certificate 証明書です。WebSphere Application Server バージョン 5.x 以降では、このパラメーターは証明書チェーンといった X509Certificate 証明書の配列を受け入れるように変更されています。 バージョン 4.x では、このパラメーターは Web アプリケーションの場合にのみ呼び出されましたが、バージョン 5.x 以降では、Web クライアントおよび Java クライアントのいずれの場合でもこのメソッドを呼び出すことができます。
public String getRealm()
throws CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、getRealm メソッドはストリング customRealm を戻します。 このメソッドへの呼び出しのうち 1 つは、ユーザー・レジストリー情報の妥当性検査中に生じます。 このメソッドは、バージョン 4.x のものと同じです。
public Result getUsers(String pattern, int limit)
throws CustomRegistryException,
RemoteException;
カスタム・レジストリーのインプリメンテーションは、 少なくともワイルドカード検索 (*) をサポートすることが求められます。例えば、アスタリスクのパターン (*) はすべてのユーザーを戻し、パターン (b*) は b で始まるユーザーを戻します。
戻りパラメーターは、com.ibm.websphere.security.Result タイプのオブジェクトです。 このオブジェクトには、java.util.List および java.lang.boolean の 2 つの属性が含まれます。 リストには戻されたユーザーが含まれ、ブール・フラグがユーザー・レジストリー内に検索パターンに合う有効なユーザーがさらにあるかどうかを示します。 このブール・フラグは、レジストリーに有効なユーザーがさらにあるかどうかをクライアントへ示すために使用されます。
FileRegistrySample.java サンプル・ファイルの場合、getUsers メソッドはユーザー・レジストリーから必要な数のユーザーを取り出し、それらを Result オブジェクト内にリストとして設定します。 要求数を超えるユーザーがあるかどうかを調べるために、サンプルでは、要求した数よりも 1 人多くユーザーを入手し、追加ユーザーを検出した場合は、ブール・フラグを true に設定します。パターン・マッチングの場合は、RegExpSample クラスの match メソッドが使用されます。これは、アスタリスク (*) や疑問符 (?) などのワイルドカード文字をサポートします。.
このメソッドは、ユーザーを役割にマッピングするさまざまなパネルで、ユーザーを役割に追加するために、 管理コンソールによって呼び出されます。 管理コンソールは、 ユーザー・レジストリー内にパターンに一致する有効な項目がさらにあることを示すために 、Result オブジェクト内に設定されたブール値を使用します。
WebSphere Application Server バージョン 4.x では、 このメソッドによって、Pattern パラメーターしか取らないよう指定されています。 戻り値はリストです。WebSphere Application Server バージョン 5.x 以降では、このメソッドは、もう 1 つのパラメーターである Limit を取るように変更されました。 理想としてはしきい値を取り、戻されるユーザーを制限するようインプリメンテーションを変更します。 戻り値は変更され、リストと、さらに項目が存在するかを示すフラグから構成される Result オブジェクトを戻すようになりました。 リストが戻されたときに、Result.setList(List) メソッドを使用して Result オブジェクトにリストを設定してください。Limit パラメーター内に要求したよりも多くの項目がある場合、Result.setHasMore メソッドを使用して Result オブジェクト内でブール属性を true に設定してください。 Result オブジェクト内のデフォルトのブール属性は、false です。
public String getUserDisplayName(String userSecurityName)
throws EntryNotFoundException,
CustomRegistryException,
RemoteException;
例えば、i5/OS システムでは、ユーザー・プロファイルのテキスト記述を表示できます。
レジストリーに表示名が必要ない場合は、 このメソッドに対してヌルまたは空ストリングを戻します。
WebSphere Application Server バージョン 4.x では、任意のユーザーに表示名が存在した場合、その表示名は Enterprise JavaBean (EJB) メソッド呼び出し getCallerPrincipal およびサーブレット呼び出し getUserPrincipal および getRemoteUser で使用できました。表示名がどのユーザーのセキュリティー命とも同じでない場合、前述の エンタープライズ Bean メソッドおよびサーブレット・メソッドに戻されます。 これらのメソッドの表示名が戻されることは、 表示名がユーザー・レジストリー内で固有ではないため、状況に よっては問題になる場合があります。 この問題を回避するために、この製品のこのバージョンでは、ユーザーの表示名の代わりにユーザーのセキュリティー名を戻すようにデフォルトの振る舞いが変更されています。カスタム・レジストリーのプロパティーの設定方法について詳しくは、 『カスタム・レジストリーのプロパティーの設定』のセクションを参照してください。
FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、指定されたユーザー名と一致する名前を持つユーザーの表示名を戻します。 表示名が存在しない場合は、空ストリングが戻されます。
このメソッドは、この製品によって呼び出すことができます。 管理コンソールを使用して、またはコマンド行と wsadmin ツールを使用して表示名を示します。 このメソッドは、表示にのみ使用します。このメソッドは、バージョン 4.x のものと同じです。
public String getUniqueUserId(String userSecurityName)
throws EntryNotFoundException,
CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプルの場合、このメソッドは、指定された名前と一致する名前を持つユーザーの uniqueUserId 値を戻します。 このメソッドは、 ユーザー用のクレデンシャルを構成するとき、およびアプリケーション用の許可表を作成するときに呼び出されます。
public String getUserSecurityName(String uniqueUserId)
throws EntryNotFoundException,
CustomRegistryException,
RemoteException;
このメソッドは、有効なユーザーが指定の uniqueUserId 用に存在することを確認するために呼び出されます。このメソッドは、 uniqueUserId がトークンから入手されるときにユーザーのセキュリティー名を取得するために呼び出されます。
public boolean isValidUser(String userSecurityName)
throws CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、ユーザーがレジストリー内にある場合は true を、ない場合は false を戻します。 このメソッドが主に呼び出されるのは、 ユーザーがディレクトリーに存在するかしないかを知ることによって今後の問題が回避できる場合です。 例えば、mapCertificate 呼び出しでは、ユーザーがユーザー・レジストリー内で有効なユーザーとして見つからない場合に名前が証明書から入手されると、そのユーザーのクレデンシャルを作成する必要はありません。
public Result getGroups(String pattern, int limit)
throws CustomRegistryException,
RemoteException;
戻りパラメーターは、com.ibm.websphere.security.Result タイプのオブジェクトです。 このオブジェクトには、java.util.List および java.lang.boolean 属性が含まれます。 リストには戻されたグループが含まれ、ブール・フラグがユーザー・レジストリー内に検索パターンに合う有効なグループがさらにあるかどうかを示します。 このブール・フラグは、 レジストリーに有効なグループがさらにあるかどうかをクライアントへ示すために使用されます。
FileRegistrySample.java サンプル・ファイルの場合、getUsers メソッドはユーザー・レジストリーから必要な数のグループを取り出し、それらを Result オブジェクト内にリストとして設定します。 要求数を超えるグループがあるかどうかを調べるために、サンプルでは、要求した数よりも 1 つ多くユーザーを入手し、追加ユーザーを検出した場合は、ブール・フラグを true に設定します。 パターン・マッチングの場合は、RegExpSample クラスの match メソッド が使用されます。これは、アスタリスク (*) および疑問符 (?) などの文字 をサポートします。
このメソッドは、グループを役割にマッピングするさまざまなパネルで 、グループを役割に追加するために、管理コンソールによって呼び出されます。 管理コンソールは、 ユーザー・レジストリー内にパターンに一致する有効な項目がさらにあることを示すために 、Result オブジェクト内に設定されたブール値を使用します。
WebSphere Application Server バージョン 4 では、このメソッドは Pattern パラメーターしか取らず、戻り値はリストでした。WebSphere Application Server バージョン 5.x 以降では、このメソッドは、Limit パラメーターを取るように変更されました。 しきい値を取り、戻されるユーザーを制限するように変更してください。 戻り値は変更され、リストと、さらに項目が存在するかを示すフラグから構成される Result オブジェクトを戻すようになりました。 Result.setList(List) メソッドを使用して Result オブジェクトにリストを設定してください。Limit パラメーター内に要求したよりも多くの項目がある場合、Result.setHasMore メソッドを使用して Result オブジェクト内でブール属性を true に設定してください。 Result オブジェクト内のデフォルトのブール属性は、false です。
public String getGroupDisplayName(String groupSecurityName)
throws EntryNotFoundException,
CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、 指定されたグループ名と一致する名前を持つグループの表示名を戻します。 表示名が存在しない場合は、空ストリングが戻されます。
この製品では、このメソッドを呼び出して、管理コンソールで、またはコマンド行で wsadmin ツールを使用することによって、表示名を表示することができます。 このメソッドは、表示のためにのみ使用します。
public String getUniqueGroupId(String groupSecurityName)
throws EntryNotFoundException,
CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、指定された名前と一致する名前を持つグループの固有 ID を戻します。 このメソッドは、アプリケーション用の許可テーブルを作成するときに呼び出されます。
public List getUniqueGroupIds(String uniqueUserId)
throws EntryNotFoundException,
CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、この uniqueUserID ID を含むすべて のグループの固有 ID を戻します。 このメソッドは、ユーザー用のクレデンシャルを作成するとき呼び出されます。 クレデンシャルの作成の一環として、 リソースへのアクセスがグループに与えられるときに、 このユーザーが属するすべての groupUniqueIds ID が収集され、 許可のためにクレデンシャル内に配置されます。
public String getGroupSecurityName(String uniqueGroupId)
throws EntryNotFoundException,
CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、 指定された ID と一致する固有 ID を持つグループのセキュリティー名を戻します。 このメソッドによって、指定の uniqueGroupId ID に対して有効なグループが存在することが確認されます。
public boolean isValidGroup(String groupSecurityName)
throws CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、 グループがレジストリー内にある場合は true を、ない場合は false を戻します。 このメソッドが主に使用されるのは、 グループがディレクトリーに存在するかどうかを知ることによって 今後の問題を回避できる場合です。
public List getGroupsForUser(String userSecurityName)
throws EntryNotFoundException,
CustomRegistryException,
RemoteException;
FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、userSecurityName 名を含むグループのセキュリティー名をすべて戻します。
このメソッドは、管理コンソールまたはスクリプト・ツールによって呼び出され、 RunAs 役割に入力されたユーザーが、 すでにユーザーやグループから役割へのマッピングでその役割に指定されているどうかを検証します。 役割マッピングに対するユーザーやグループの役割に、所属するグループを介して直接的または間接的に割り当てられていないユーザーは、RunAs 役割に追加することができないため、このチェックが必要となります。 このユーザーが所属するグループは、 役割マッピングに対するユーザーやグループの役割の一部であるため、このメソッドが呼び出されて、 このユーザーが所属するグループがこの役割にマッピングされているかどうかがチェックされます。
public Result getUsersForGroup(String groupSecurityName, int limit)
throws NotImplementedException,
EntryNotFoundException,
CustomRegistryException,
RemoteException;
戻りパラメーターは、com.ibm.websphere.security.Result タイプのオブジェクトです。 このオブジェクトには、java.util.List および java.lang.boolean 属性が含まれます。 リストには戻されたユーザーが含まれ、ブール・フラグがユーザー・レジストリー内に検索パターンに合う有効なユーザーがさらにあるかどうかを示します。 このブール・フラグは、 ユーザー・レジストリーに有効なユーザーがあるかどうかをクライアントに示します。
例では、このメソッドは、Limit パラメーターがゼロ (0) に設定されていない場合、 要求した数より 1 つ多くのユーザーをグループ用に入手します。 メソッドが 1 つ多くのユーザーを入手できた場合は、ブール・フラグが true に設定されます。
WebSphere Application Server バージョン 4 では、この getUsers メ ソッドは製品に必須です。 WebSphere Application Server バージョン 5.x 以降では、このメソッドは、要求されるユーザーのセットを取得することが実用的でない場合に、例外 NotImplementedException を作成できます。 ただし、この例外が作成されるのはまれであり、その他のコンポーネントが影響を受ける可能性がある場合などに 限られます。 バージョン 4 では、このメソッドは Pattern パラメーターのみを受け入れて、 リストを戻します。 バージョン 5 では、このメソッドで Limit パラメーターも使用できます。しきい値を取り、戻されるユ ーザーを制限するように、インプリメンテーションを変更してください。 戻り値は、リストと、さらに項目が存在するかを示すフラグから構成される Result オブジェクトを戻すように変更されます。 リストが戻されたときに、Result.setList(List) メソッドを使用して Result オブジェクトにリストを設定してください。 Limit パラメーター内に要求したよりも多くの項目がある場合、Result.setHasMore メソッドを使用して Result オブジェクト内でブール属性を true に設定してください。 Result オブジェクト内のデフォルトのブール属性は、false です。
public com.ibm.websphere.security.cred.WSCredential
createCredential(String userSecurityName)
throws NotImplementedException,
EntryNotFoundException,
CustomRegistryException,
RemoteException;