データストアは、ユーザー属性およびユーザー設定データを格納できるデータベースです。Access Manager は、LDAPv3 アイデンティティーリポジトリフレームワークに接続するアイデンティティーリポジトリプラグインを提供します。これらのプラグインにより、既存のユーザーデータベースに変更を加える必要なしに、Access Manager ユーザー情報を表示および取得できます。Access Manager フレームワークは、アイデンティティーリポジトリプラグインからのデータをほかの Access Manager プラグインからのデータと統合し、各ユーザーの仮想アイデンティティーを形成します。Access Manager はその後、複数のアイデンティティーリポジトリ間で、認証と承認のプロセスにユニバーサルアイデンティティーを使用できます。仮想ユーザーアイデンティティーは、ユーザーのセッション終了時に破棄されます。
この節では、設定可能なデータストアのタイプについて説明します。また、新しいデータストアタイプを作成する手順および設定する方法についても説明します。
次のデータストアタイプのいずれかの場合に、新しいデータストアインスタンスを作成できます。
このデータストアタイプは、Sun Java System Directory Server インスタンスに属し、Access Manager 情報ツリーを保持します。このデータストアタイプでは LDAP Version 3 の仕様の一部ではない Directory Server 機能 (ロールやサービスのクラスなど) が使用され、以前のバージョンの Access Manager との互換性があります。
このデータストアタイプでは、LDAP Version 3 の仕様を使用して、アイデンティティーデータを Microsoft Active Directory のインスタンスに書き込みます。
このリポジトリを使用すると、別々のデータストアを作成することなく、Access Manager のローカルインストールインスタンス上のフラットな DIT 構造にデータとアイデンティティーを格納できます。一般に、このリポジトリはコンセプト配備のテストまたは検証に使用されます。
このデータストアタイプを使用すると、アイデンティティーデータを LDAPv3 に準拠した任意のデータベースに書き込むことができます。使用中の LDAPv3 データベースが持続検索をサポートしていない場合は、キャッシュ機能を使用できません。
このデータストアタイプは、Sun Java System Directory Server インスタンスに属し、Access Manager 情報ツリーを保持します。これは、より多くの設定属性によってデータストアをより適切にカスタマイズできるという点で、Access Manager リポジトリプラグインと異なります。
次の節では、データストアを接続する手順について説明します。
「データストア」タブをクリックします。
「データストア」リストから「新規」をクリックします。
データストアの名前を入力します。
作成するデータストアのタイプを選択します。
「次へ」をクリックします。
適切な属性値を入力して、データストアを設定します。
「終了」をクリックします。
この節では、新しい Access Manager データストアごとに設定する属性を定義します。データストア属性は、次のとおりです。
Active Directory、汎用 LDAPv3、および Access Manager スキーマを含んだ Sun Directory Server の各データストアタイプは、同じ基本プラグインを共有しているため、設定属性も同じです。ただし、一部の属性のデフォルト値はデータストアタイプごとに異なり、Access Manager コンソールにそれぞれ表示されます。
Access Manager リポジトリプラグインを設定するために、次の属性を使用できます。
Access Manager リポジトリプラグインを実装するクラスファイルの場所を指定します。
この LDAP サーバー上で許可されている、または実行可能な操作を指定します。この LDAPv3 リポジトリプラグインでサポートされている操作はデフォルト操作だけです。LDAPv3 リポジトリプラグインでサポートされている操作は次のとおりです。
グループ — 読み取り、作成、編集、削除
ユーザー — 読み取り、作成、編集、削除、サービス
エージェント — 読み取り、作成、編集、削除
LDAP サーバー設定とタスクに基づいて、これらのリストからアクセス権を削除できますが、アクセス権の追加はできません。
設定された LDAPv3 リポジトリプラグインが Sun Java Systems Directory Server のインスタンスを指している場合は、「ロール」タイプのアクセス権を追加できます。これ以外の場合は、ほかのデータストアではロールがサポートされていない場合があるため、このアクセス権は追加できません。「ロール」タイプのアクセス権は、次のとおりです。
ロール — 読み取り、作成、編集、削除
サポートする LDAPv3 リポジトリのタイプとして「ユーザー」がある場合は、そのユーザーに対して読み取り、作成、編集、および削除のサービス操作が可能です。言い換えると、「ユーザー」タイプがサポートされている場合は、読み取り、編集、作成、および削除の操作を使用して、アイデンティティーリポジトリからユーザーエントリの読み取り、編集、作成、および削除を実行できます。user=service 操作を使用すると、Access Manager サービスがユーザーエントリ内の属性にアクセスできます。さらに、ユーザーが属するレルムまたはロールにサービスが割り当てられている場合、ユーザーは動的サービス属性にアクセスできます。
また、ユーザーは、割り当てられたすべてのサービスのユーザー属性を管理できます。ユーザーに操作として「サービス」 (user=service) がある場合は、サービス関連の操作がすべてサポートされるように指定されます。それらの操作には、assignService、unassignService、getAssignedServices、getServiceAttributes、removeServiceAttributes、および modifyService があります。
Access Manager によって管理される、Directory Server 内の組織を指す DN を定義します。これは、データストア内で実行されるすべての操作のベース DN となります。
ユーザーがピープルコンテナ内に位置する場合に、ピープルコンテナのネーミング属性を指定します。ユーザーがピープルコンテナ内に位置しない場合、このフィールドは空のままとされます。
ピープルコンテナの値を指定します。デフォルトは people です。
エージェントがエージェントコンテナ内に位置する場合の、エージェントコンテナのネーミング属性。エージェントがエージェントコンテナ内に位置しない場合、このフィールドは空のままとされます。
エージェントコンテナの値を指定します。デフォルトは agents です。
これを有効にした場合、Access Manager リポジトリでは、指定されたアイデンティティーに対して再帰検索が実行されます。たとえば、次のデータ構造で再帰検索を実行します。
root realm1 subrealm11 user5 subrealm12 user6 realm2 user1 user2 subrealm21 user3 user4
結果は、次のようになります。
検索が root から実行され、このレベルでユーザーが定義されていない場合 (amadmin と anonymous は除く)、検索の結果で user1 から user6 が返されます。
検索が realm1 から実行され、ユーザーが定義されていない場合、検索の結果で user5 と user6 が返されます。
検索が realm2 (2 つのユーザーが定義されている) から実行される場合、検索の結果で user1 から user4 が返されます。
この属性をレルムモードのインストールで有効にした場合、Access Manager は、リポジトリに存在するレルムおよびサブレルムごとに対応する組織およびサブ組織を作成します。さらに、新しく作成された組織およびサブ組織に、レルムおよびサブレルムに登録されたサービスが登録されます。レルム DIT と組織 DIT の両方が、データストアに存在します。
フラットファイルリポジトリを設定するために、次の属性を使用できます。
この属性は、フラットファイルの実装を提供する Java クラスファイルを指定します。この属性は変更できません。
アイデンティティーおよびその属性を格納するベースディレクトリを定義します。
これを有効にした場合 (デフォルト)、アイデンティティーとその属性がキャッシュされます。後続の要求は、ファイルシステムにアクセスしません。
キャッシュを有効にした場合、この属性は、ファイルシステムへの変更がないかどうか、キャッシュ内のエントリをチェックするまでの間隔を分単位で指定します。このチェックのメカニズムは、タイムスタンプに基づきます。
作成されたときに、自動的にユーザーに追加されるオブジェクトクラスを定義します。
認証に使用されるパスワードを含む属性名を指定します。この属性は、データストアの認証モジュールを有効にしたときに、ユーザーを認証するために使用されます。
アイデンティティーの状態を格納する属性名を指定します。状態属性の値は、「アクティブ」と「非アクティブ」のいずれかです。これは、アイデンティティーの認証時に使用されます。アイデンティティーが「非アクティブ」の場合は、ユーザーは認証されません。
ハッシュ化され、ファイルに格納される値を含む属性のリストを指定します。ハッシュ化されると、元の値は取得できません。ハッシュ化された値のみが取得されます。これは、特定の属性を永続的に格納すべきではないにもかかわらず検証に使用する際、機密性を確保するために使用します。このタイプの属性の例には、アイデンティティーのパスワード属性があります。
暗号化され、ファイルに格納される値を含む属性のリストを指定します。値は暗号化され、格納されますが、アイデンティティーリポジトリ API を呼び出すと、元の復号化された値が返されます。これにより、ユーザーがファイルシステムに直接アクセスし、機密性の高い属性を読み取ることを防ぎます。
LDAPv3 リポジトリプラグインを設定するために、次の属性を使用できます。
接続先 LDAP サーバーの名前を入力します。「ホスト名.ドメイン名:ポート番号」の形式を使用することをお勧めします。
複数の「ホスト:ポート番号」エントリが入力された場合、リスト内の最初のホストへの接続が試みられます。リスト内の次のエントリは、現在のホストへの接続試行が失敗した場合にのみ試行されます。
現在接続している LDAP サーバーに対して認証を行うために Access Manager が使用する DN 名を指定します。バインドに使用される DN 名を持つユーザーには、「LDAPv3 プラグインでサポートされるタイプおよび操作」属性で設定した、正しい追加/変更/削除権限を付与することをお勧めします。
現在接続している LDAP サーバーに対して認証を行うために Access Manager が使用する DN パスワードを指定します。
パスワードを確認します。
このデータストアリポジトリのマッピング先となる DN。これは、このデータストア内で実行されるすべての操作のベース DN となります。
有効にすると、Access Manager は HTTPS プロトコルを使用してプライマリサーバーに接続します。
接続プール内の接続の初期数を指定します。接続プールを利用すると、新しい接続を毎回作成する必要がなくなります。
許容される接続数の上限を指定します。
検索操作で返されるエントリ数の上限を指定します。この制限に達すると、Directory Server は検索要求に一致するあらゆるエントリを返します。
検索要求に割り当てられる最大の秒数を指定します。この制限に達すると、Directory Server は検索要求に一致するあらゆる検索エントリを返します。
このオプションを有効にすると、ある LDAP サーバーからの別の LDAP サーバーに対する参照が自動的に実行されます。
LDAPv3 リポジトリを実装するクラスファイルの場所を指定します。
フレームワークが認識する共通属性をネイティブデータストアにマップできるようにします。たとえば、フレームワークがユーザー状態の判定に inetUserStatus を使用する場合に、ネイティブデータストアが実際には userStatus を使用することが可能です。属性定義では大文字と小文字が区別されます。
この LDAP サーバー上で許可されている、または実行可能な操作を指定します。この LDAPv3 リポジトリプラグインでサポートされている操作はデフォルト操作だけです。LDAPv3 リポジトリプラグインでサポートされている操作は次のとおりです。
グループ — 読み取り、作成、編集、削除
ユーザー — 読み取り、作成、編集、削除、サービス
エージェント — 読み取り、作成、編集、削除
LDAP サーバー設定とタスクに基づいて、これらのリストからアクセス権を削除できますが、アクセス権の追加はできません。
設定された LDAPv3 リポジトリプラグインが Sun Java Systems Directory Server のインスタンスを指している場合は、「ロール」タイプのアクセス権を追加できます。これ以外の場合は、ほかのデータストアではロールがサポートされていない場合があるため、このアクセス権は追加できません。「ロール」タイプのアクセス権は、次のとおりです。
ロール — 読み取り、作成、編集、削除
サポートする LDAPv3 リポジトリのタイプとして「ユーザー」がある場合は、そのユーザーに対して読み取り、作成、編集、および削除のサービス操作が可能です。言い換えると、「ユーザー」タイプがサポートされている場合は、読み取り、編集、作成、および削除の操作を使用して、アイデンティティーリポジトリからユーザーエントリの読み取り、編集、作成、および削除を実行できます。user=service 操作を使用すると、Access Manager サービスがユーザーエントリ内の属性にアクセスできます。さらに、ユーザーが属するレルムまたはロールにサービスが割り当てられている場合、ユーザーは動的サービス属性にアクセスできます。
また、ユーザーは、割り当てられたすべてのサービスのユーザー属性を管理できます。ユーザーに操作として「サービス」 (user=service) がある場合は、サービス関連の操作がすべてサポートされるように指定されます。それらの操作には、assignService、unassignService、getAssignedServices、getServiceAttributes、removeServiceAttributes、および modifyService があります。
LDAPv3 プラグインエントリの検索に使用する範囲を定義します。範囲は次のいずれかにする必要があります。
SCOPE_BASE
SCOPE_ONE
SCOPE_SUB (デフォルト)
このフィールドは、ユーザーに対して検索を行うための属性タイプを定義します。たとえば、ユーザーの DN が「uid=user1,ou=people,dc=iplanet,dc=com」である場合、ネーミング属性は uid です。
ユーザーエントリの検索に使用する検索フィルタを指定します。
ユーザーのオブジェクトクラスを指定します。ユーザーが作成されると、このユーザーオブジェクトクラスのリストがユーザーの属性リストに追加されます。
ユーザーと関連付けられる属性のリストを定義します。このリストにないユーザー属性の読み取りまたは書き込みは一切行うことができません。属性は大文字と小文字が区別されます。ここでオブジェクトクラスと属性スキーマを定義する前に、Directory Server でオブジェクトクラスと属性スキーマが定義されている必要があります。
ユーザーを作成するときに必要な属性を指定します。この属性では、次の構文が使用されます。
DestinationAttributeName=SourceAttributeName
ソース属性名がない場合、デフォルトはユーザー ID (uid) です。次に例を示します。
cn sn=givenName
ユーザープロファイルを作成するには、cn と sn の両方が必要です。cn は uid という属性の値を取得し、sn は givenName という属性の値を取得します。
ユーザーの状態を示す属性名を指定します。
アクティブなユーザーの状態を示す属性名を指定します。デフォルトは「アクティブ」です。
非アクティブなユーザーの状態を示す属性名を指定します。デフォルトは「非アクティブ」です。
このフィールドは、グループに対して検索を行うための属性タイプを定義します。デフォルトは cn です。
グループエントリの検索に使用する検索フィルタを指定します。デフォルトは、(objectclass=groupOfUniqueNames) です。
グループがコンテナ内に位置する場合に、グループコンテナのネーミング属性を指定します。コンテナ内に位置しない場合、この属性は空のままとされます。たとえば、「cn=group1,ou=groups,dc=iplanet,dc=com」のグループ DN が ou=groups 内に位置する場合、グループコンテナネーミング属性は ou です。
グループコンテナの値を指定します。たとえば、「 cn=group1,ou=groups,dc=iplanet,dc=com」のグループ DN がコンテナ名 ou=groups 内に位置する場合、グループコンテナ値は groups になります。
グループのオブジェクトクラスを指定します。グループが作成されると、グループオブジェクトクラスのこのリストがグループの属性リストに追加されます。
グループと関連付けられる属性のリストを定義します。このリストにないグループ属性の読み取りまたは書き込みは一切行うことができません。属性は大文字と小文字が区別されます。ここでオブジェクトクラスと属性スキーマを定義する前に、Directory Server でオブジェクトクラスと属性スキーマが定義されている必要があります。
DN が属する全グループの名前がその値である属性の名前を指定します。デフォルトは memberOf です。
このグループに属している DN がその値である属性名を指定します。デフォルトは uniqueMember です。
このグループに属しているメンバーを決定する LDAP URL がその値である、属性の名前を指定します。デフォルトは memberUrl です。
ユーザーがピープルコンテナ内に位置する場合に、ピープルコンテナのネーミング属性を指定します。ユーザーがピープルコンテナ内に位置しない場合、このフィールドは空のままとされます。
ピープルコンテナの値を指定します。デフォルトは people です。
このフィールドは、エージェントの検索を実行するための属性タイプを定義します。デフォルトは uid です。
エージェントがエージェントコンテナ内に位置する場合の、エージェントコンテナのネーミング属性。エージェントがエージェントコンテナ内に位置しない場合、このフィールドは空のままとされます。
エージェントコンテナの値を指定します。デフォルトは agents です。
エージェントの検索に使用するフィルタを定義します。実際のエージェント検索フィルタは、このフィールドの値の前に「LDAP エージェント検索属性」の値を付加することによって構築されます。
たとえば、「LDAP エージェント検索属性」が uid で、「LDAP ユーザー検索フィルタ」が (objectClass=sunIdentityServerDevice) の場合、実際のユーザー検索フィルタは次のようになります。(&(uid=*)(objectClass=sunIdentityServ erDevice))
エージェントのオブジェクトクラスを定義します。エージェントが作成されると、エージェントオブジェクトクラスのリストがエージェントの属性リストに追加されます。
エージェントと関連付けられる属性のリストを定義します。このリストにないエージェント属性の読み取りまたは書き込みは一切行うことができません。属性は大文字と小文字が区別されます。ここでオブジェクトクラスと属性スキーマを定義する前に、Directory Server でオブジェクトクラスと属性スキーマが定義されている必要があります。
レルムの認証モジュールモードがデータストアに設定されている場合は、このデータストアがユーザーまたはエージェント、あるいはその両方のアイデンティティータイプを認証できるように指定します。
持続検索に使用するベース DN を定義します。一部の LDAPv3 サーバーは、ルートサフィックスレベルでの持続検索のみをサポートします。
ディレクトリサーバーエントリに特定の変更を返すフィルタを定義します。データストアは、定義されたフィルタに一致する変更のみを受け取ります。
持続検索を再開するまでの最大アイドル時間を定義します。1 よりも大きい値を設定する必要があります。1 以下の値を設定すると、接続のアイドル時間とは無関係に検索を再開します。
Access Manager がロードバランサとともに配備される場合、一部のロードバランサは、指定された時間アイドル状態が続くとタイムアウトします。この場合、ロードバランサに対して指定された時間よりも小さい値を「再起動前の持続検索の最大アイドル時間」に設定することをお勧めします。
「再試行する LDAPException エラーコード」で指定されたエラーコードが返された場合に、持続検索操作を再試行する回数の上限を定義します。
各再試行の前に待機する時間を指定します。これは、持続検索接続にのみ適用されます。
持続検索操作を再試行させるエラーコードを指定します。この属性は持続検索のみに適用され、すべての LDAP 操作に適用されるわけではありません。
これを有効にした場合、Access Manager はデータストアから取得されたデータをキャッシュできます。
削除されるまでデータがキャッシュに格納される最長期間を指定します。この値は、秒単位で定義します。
キャッシュの最大サイズを指定します。この値を大きくすると、より多くのデータを格納できますが、必要なメモリーも増えます。この値は、バイト単位で定義します。