WebSphere Application Server Network Deployment, Version 6.1   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows, Windows Vista

             目次と検索結果のパーソナライズ化

UserRegistry インターフェース・メソッド

このインターフェースをインプリメントすると、WebSphere Application Server セキュリティーで カスタム・レジストリーが使用できるようになります。この機能により、java.rmi ファイルが拡張されます。 リモート・レジストリーを使用すると、このプロセスをリモート側で完了することができます。

このインターフェースのインプリメンテーションは、 以下に対してインプリメンテーションを提供する必要があります。

public void initialize(java.util.Properties props)
      throws CustomRegistryException,
             RemoteException;

このメソッドは、 UserRegistry メソッドを初期化するために呼び出されます。「カスタム・ユーザー・レジストリー」パネルに 定義されたすべてのプロパティーは、このメソッドへ伝搬されます。

FileRegistrySample.java サンプル・ファイルの場合、初期化メソッドはユーザーおよびグループの情報を含むレジストリー・ファイルの名前を取得します。

このメソッドは、サーバー立ち上げ時にレジストリーを初期化するために呼び出されます。 また、このメソッドは、セキュリティーがオンの場合、管理コンソールが検証を行なう場合にも呼び出されます。 このメソッドは、バージョン 4.x のものと同じです。

public String checkPassword(String userSecurityName, String password)
      throws PasswordCheckFailedException,
             CustomRegistryException,
             RemoteException;

checkPassword メソッドは、ユーザーが名前またはユーザー ID とパスワードを使用してログインするときに、そのユーザーを認証するために呼び出されます。 このメソッドはストリングを戻します。これは、ほとんどの場合、ユーザー・セキュリティー名です。 このユーザーのクレデンシャルが、許可の目的のために作成されます。このユーザー名は、getCallerPrincipal エンタープライズ Bean 呼び出しでも戻され、サーブレットは、getUserPrincipal および getRemoteUser メソッドを呼び出します。レジストリーに表示名がある場合、詳しくは『getUserDisplayName メソッド』を参照してください。 ログインしているユーザー以外のユーザーを戻す場合は、 そのユーザーがレジストリー内で有効であることを確認する必要がある場合 があります。

FileRegistrySample.java サンプル・ファイルの場合、mapCertificate メソッドは証明書チェーンから識別名 (DN) を入手し、ユーザーを戻す前にそれがレジストリー内で有効なユーザーであるか確認します。 サンプルでは、checkPassword メソッドは、ユーザー・レジストリー内の名前とパスワードの組み合わせをチェックし、 これらが一致する場合は認証済みのユーザーを戻します。

このメソッドは様々なシナリオで呼び出されます。例えば、ユーザー・レジストリーが初期化された後でユーザー情報の妥当性検査を行うために管理コンソールによって呼び出されます。 また、このメソッドは、ユーザーを認証するために製品の保護リソースにアクセスすると、許可を続行する前に呼び出されます。このメソッドは、バージョン 4.x のものと同じです。

public String mapCertificate(X509Certificate[] cert)
      throws CertificateMapNotSupportedException,
             CertificateMapFailedException,
             CustomRegistryException,
             RemoteException;

mapCertificate メソッドは、ブラウザーによって提供された X.509 証明書チェーンからユーザー名を取得するために呼び出されます。 完全な証明書チェーンがこのメソッドへ渡され、インプリメンテーションでは、必要に応じてチェーンを妥当性検査し、 ユーザー情報を入手することができます。このユーザーのクレデンシャルが、許可の目的のために作成されます。ブラウザーの証明書がユーザーの構成でサポートされていない場合、例外 CertificateMapNotSupportedException を作成することができます。 証明書がサポートされていないと、 確認タイプが証明書の場合、 ブラウザーに有効な証明書があっても認証は結果的に失敗します。

このメソッドは、認証のために証明書が提供されるときに呼び出されます。 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;

getRealm メソッドは、セキュリティー・レルムの名前を入手するために呼び出されます。レルムの名前は、 レジストリーがユーザーを認証するセキュリティー・ドメインを示します。このメソッドがヌル値を戻す場合、デフォルト名の customRealm が使用されます。

FileRegistrySample.java サンプル・ファイルの場合、getRealm メソッドはストリング customRealm を戻します。 このメソッドへの呼び出しのうち 1 つは、ユーザー・レジストリー情報の妥当性検査中に生じます。 このメソッドは、バージョン 4.x のものと同じです。

public Result getUsers(String pattern, int limit)
      throws CustomRegistryException,
             RemoteException;

getUsers メソッドは、レジストリーからユーザーのリストを戻します。 ユーザーの名前は、Pattern パラメーターによって異なります。 ユーザーの数は、Limit パラメーターによって制限されます。多くのユーザーを持つレジストリーで、 すべてのユーザーを入手することは実用的ではありません。したがって、Limit パラメーターが、 レジストリーから検索されるユーザー数を制限するために導入されています。 Limit パラメーター値がゼロ (0) のときは、パターンに一致するすべてのユーザーを戻すことを意味しますが、大きなレジストリーの場合には問題を引き起こす可能性があるため、 注意して使用する必要があります。

カスタム・レジストリーのインプリメンテーションは、 少なくともワイルドカード検索 (*) をサポートすることが求められます。例えば、アスタリスクのパターン (*) はすべてのユーザーを戻し、パターン (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;

getUserDisplayName メソッドは、ユーザーの表示名が存在する場合にそれを戻します。 表示名は、 いくつかのレジストリーに設定できるユーザーを説明するオプションのストリングです。この記述名はユーザー用であり、レジストリーで固有である必要はありません。

例えば、Windows システムでは、 ユーザーの氏名を表示することができます。

レジストリーに表示名が必要ない場合は、 このメソッドに対してヌルまたは空ストリングを戻します。

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;

このメソッドは、セキュリティー名に基づき、ユーザーの固有 ID を戻します。

FileRegistrySample.java サンプルの場合、このメソッドは、指定された名前と一致する名前を持つユーザーの uniqueUserId 値を戻します。 このメソッドは、 ユーザー用のクレデンシャルを構成するとき、およびアプリケーション用の許可表を作成するときに呼び出されます。

public String getUserSecurityName(String uniqueUserId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

このメソッドは、固有 ID を指定されたユーザーのセキュリティー名を戻します。 FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、 指定された ID と一致する固有 ID を持つユーザーのセキュリティー名を戻します。

このメソッドは、有効なユーザーが指定の 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;

getGroups メソッドは、ユーザー・レジストリーからグループのリストを戻します。 グループの名前は、Pattern パラメーターによって異なります。 グループの数は、Limit パラメーターによって制限されます。多くのグループを持つレジストリーで、 すべてのグループを入手することは実用的ではありません。したがって、ユーザー・レジストリーから検索されるグループ数を制限するために、Limit パラメーターが導入されています。 Limit パラメーター値がゼロ (0) のときは、パターンに一致するすべての グループを戻すことを意味しますが、これは大きなユーザー・レジストリー の場合には問題が発生する可能性があるため、注意して使用する必要があります。カスタム・レジストリーのインプリメンテーションは、 少なくともワイルドカード検索 (*) をサポートすることが求められます。例えば、アスタリスクのパターン (*) はすべてのユーザーを戻し、パターン (b*) は b で始まるユーザーを戻します。

戻りパラメーターは、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;

getGroupDisplayName メソッドは、グループの表示名が存在する場合にそれを戻します。 表示名は、いくつかのユーザー・レジストリーに設定できるグループを説明 するオプションのストリングです。 この名前は、 グループの記述名であり、 レジストリーで固有である必要はありません。 レジストリーにグループの表示名が必要ない場合は、 このメソッドに対してヌルまたは空ストリングを戻します。

FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、 指定されたグループ名と一致する名前を持つグループの表示名を戻します。 表示名が存在しない場合は、空ストリングが戻されます。

この製品では、このメソッドを呼び出して、管理コンソールで、またはコマンド行で wsadmin ツールを使用することによって、表示名を表示することができます。 このメソッドは、表示のためにのみ使用します。

public String getUniqueGroupId(String groupSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

このメソッドはセキュリティー名を指定されたグループの固有 ID を戻します。

FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、指定された名前と一致する名前を持つグループの固有 ID を戻します。 このメソッドは、アプリケーション用の許可テーブルを作成するときに呼び出されます。

public List getUniqueGroupIds(String uniqueUserId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

このメソッドは、 ユーザーが属するすべてのグループの固有 ID を戻します。

FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、この uniqueUserID ID を含むすべて のグループの固有 ID を戻します。 このメソッドは、ユーザー用のクレデンシャルを作成するとき呼び出されます。 クレデンシャルの作成の一環として、 リソースへのアクセスがグループに与えられるときに、 このユーザーが属するすべての groupUniqueIds ID が収集され、 許可のためにクレデンシャル内に配置されます。

public String getGroupSecurityName(String uniqueGroupId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

このメソッドは、固有 ID を指定されたグループのセキュリティー名を戻します。

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;

このメソッドは、 提供された名前に一致する名前を持つユーザーが属するすべてのグループを戻します。 このメソッドは 、getUniqueGroupIds メソッドと似ています。 ただし、固有 ID ではなく、セキュリティー名が使用されます。

FileRegistrySample.java サンプル・ファイルの場合、このメソッドは、userSecurityName 名を含むグループのセキュリティー名をすべて戻します。

このメソッドは、管理コンソールまたはスクリプト・ツールによって呼び出され、 RunAs 役割に入力されたユーザーが、 すでにユーザーやグループから役割へのマッピングでその役割に指定されているどうかを検証します。 役割マッピングに対するユーザーやグループの役割に、所属するグループを介して直接的または間接的に割り当てられていないユーザーは、RunAs 役割に追加することができないため、このチェックが必要となります。 このユーザーが所属するグループは、 役割マッピングに対するユーザーやグループの役割の一部であるため、このメソッドが呼び出されて、 このユーザーが所属するグループがこの役割にマッピングされているかどうかがチェックされます。

public Result getUsersForGroup(String groupSecurityName, int limit)
      throws NotImplementedException,
             EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

このメソッドは、指定したグループからユーザーを検索します。 戻されるユーザーの数は、Limit パラメーターによって制限されます。Limit パラメーター値がゼロ (0) のときは、そのグループのすべてのユーザーを戻すことを示します。 このメソッドは 、WebSphere Application Server セキュリティー・コンポーネントによって直接呼び出されることはありません。 ただし、このメソッドは他のコンポーネントによって呼び出されることがあります。 まれなケースですが、 いずれかのグループからすべてのユーザーを取得することが実用的でない状 況でユーザー・レジストリーを使用する場合は、 特定のグループに対して NotImplementedException 例外を作成することができます。 この場合は、Process Choreographer がインストールされている場合に、スタッフ割り当てがこれら特定のグループを使用してモデル化されないことを確認してください。 ユーザー・レジストリー内のグループからユーザーを戻す必要がない場合は、 このメソッドをインプリメントする際に NotImplemented 例外を作成しないことをお勧めします。

戻りパラメーターは、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 です。

重要: 次のコード・サンプルの最初の 2 行は、説明のためにのみ、分割されています。

public com.ibm.websphere.security.cred.WSCredential
         createCredential(String userSecurityName)
      throws NotImplementedException,
             EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

WebSphere Application Server の本リリースでは、createCredential メソッドは呼び出されません。null を戻すことができます。 例では、null 値が戻されます。



関連タスク
スタンドアロン・カスタム・レジストリーの構成
カスタム・ユーザー・レジストリーのマイグレーション
スタンドアロン・カスタム・レジストリーの開発
関連資料
FileRegistrySample.java ファイル
getRemoteUser メソッドおよび getAuthType メソッド
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 7:44:53 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/rsec_users.html