ディレクトリ同期は、User Management にとって重要な要件です。ユーザーやグループは、ロールおよび権限の割り当てのために、エンタープライズディレクトリから LiveCycle データベースに同期されます。ユーザーの数は要件によって 100 から 100,000 以上と様々であり、データを効率的に同期させる際の技術的課題となっています。
LDAP プロトコルには、要求コントロールを使用したページ分割という方法でサイズの大きなデータセットに対してクエリーを実行するメカニズムがあります。Microsoft Active Directory を使用している場合、LDAP から LiveCycle データベースへの同期を実行すると、PagedResultsControl によって特定のサイズのデータがまとめて取得されます。Sun ONE Directory Server は、PagedResultsControl をサポートしていません。Sun ONE Directory Server に対してページ分割クエリーを完了するには、仮想一覧表示(VLV)コントロールを使用します。このコントロールを使用するには、ディレクトリサーバー側での設定とクライアント側での実装が必要です。
注意: ここでは、Sun ONE Directory Server に VLV コントロールを使用する場合について説明します。ただし、VLV コントロールをサポートするディレクトリサーバーであれば、VLV コントロールを使用できます。
ディレクトリを設定する場合は、ユーザー設定ページとグループの設定ページの両方で「仮想一覧表示(VLV)コントロールを有効にする」を選択します。このチェックボックスを選択する場合は、「フィールドをソート」ボックスでソート名も指定する必要があります。デフォルト値は「uid」です(ディレクトリまたはカスタム SPI の追加または ディレクトリの編集を参照)。
ユーザーおよびグループに対して LDAP VLV エントリを作成するには、Sun ONE Administration Console またはコマンドラインスクリプトを使用します。コマンドラインスクリプトでは、ユーザーおよびグループに関するサンプルの LDIF ファイルを使用できます(VLV 用の Sun ONE Directory Server の設定を参照)。
サーバーを停止し、必要なインデックスを作成します(ディレクトリサーバーでの VLV のインデックスの作成を参照)。
VLV 用の Sun ONE Directory Server の設定VLV を作成するには、vlvSearch および vlvIndex の各オブジェクトクラスが含まれている 1 組のエントリが必要です。vlvSearch エントリには検索ベースおよび vlvFilter 属性が含まれており、このうち vlvFilter 属性ではソート対象の属性が含まれているオブジェクトクラスを指定します。vlvIndex オブジェクトクラスには、ソート対象の属性とソート順序を指定する vlvSort 属性が含まれています(「-」符号はアルファベットの逆順であることを示します)。LiveCycle で VLV を使用するには、ユーザーのエントリとグループのエントリを個別に作成する必要があります。
注意: オブジェクトエントリを作成するには、Sun ONE グラフィカルユーザーインターフェイス(GUI)またはコマンドラインスクリプトを使用します。GUI を使用してオブジェクトエントリを作成する手順については、Sun One のマニュアルを参照してください。
ここでは、ユーザーの VLV エントリ用のサンプルスクリプト LDIF を示します。
dn: cn=lcuser,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
objectclass: top
objectclass: vlvSearch
cn: lcuser
vlvBase: dc=corp,dc=adobe,dc=com
vlvScope: 2
vlvFilter: (&(objectclass=inetOrgPerson))
aci: (target="ldap:///cn=lcuser,cn=userRoot,cn=ldbm database,cn=plugins,cn=config")(targetattr="*")(version 3.0; acl "Config"
;allow(read,search,compare) userdn="ldap:///all"; )
dn: cn=lcuser,cn=lcuser,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
cn: lcuser
vlvSort: cn
objectclass: top
objectclass: vlvIndex
スクリプトを使用したオブジェクトエントリの作成サンプルスクリプトには lcuser という LDAP エントリがあります。このエントリは、LiveCycle でユーザー同期を実現する VLV 関連設定用のエントリです。適宜、次のプロパティを変更します。
エントリ名:このサンプルのエントリ名は lcuser です。lcuser を変更する場合は、サンプルスクリプトのすべての領域で lcuser を変更する必要があります。
vlvBase:ユーザー設定ページに指定されている BaseDN です。
vlvFilter:ユーザー設定ページに指定されている検索フィルターです。
vlvSort:ユーザー設定ページの VLV 設定セクションに指定されているソートフィールドです。VLV コントロールには、ソートコントロールを指定する必要があります。このフィールドは、作成した vlv インデックスのソートパラメーターとして使用されます。
aci:サンプルスクリプトに指定されているアクセス制御は、認証済みユーザーに対して、VLV インデックスにアクセスして読み取り、検索、比較の各操作を実行する権限を付与します。管理者は、User Management ユーザーインターフェイスのディレクトリサーバー設定ページに設定されているバインドユーザーにアクセスを制限できます。権限が付与されていない場合、ユーザー検索で VLV を使用できなくなり、LDAP サーバーで権限の例外が発生します。
Sun ONE サーバーに付属の ldapmodify ツールを使用して、グループの Base DN、検索フィルターおよびソートフィールドをそれぞれ使用して、グループに同様のエントリを作成します。
server directory\shared\bin>ldapmodify -v -a -h host -p port -D "admin user" -w "password" -f "LDIF file location"
例えば、次のようにテキストを入力します。
D:\tools\ldap\sun\shared\bin> -v -a -h localhost -p 55850 -D "uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot" -w "admin" -f "D:\tools\ldap\data\vlv feature\users.ldif"
ディレクトリサーバーでの VLV のインデックスの作成ディレクトリの設定を行い、ユーザーおよびグループに対して LDAP VLV エントリを作成したら、サーバーを停止し、必要なインデックスを作成します。
オブジェクトエントリを作成した後、Sun ONE サーバーを停止します。
vlvindex ツールを使用し、次のテキストを入力してインデックスを生成します。
directory server instance\vlvindex.bat -n userRoot -T lcuser
次の出力が生成されます。
D:\tools\ldap\sun\shared\bin>..\..\slapd-chetanmeh-xp3\vlvindex.bat -n userRoot -T livecycle
[21/Nov/2007:16:47:26 +051800] - userRoot: Indexing VLV: livecycle
[21/Nov/2007:16:47:27 +051800] - userRoot: Indexed 1000 entries (5%).
[21/Nov/2007:16:47:27 +051800] - userRoot: Indexed 2000 entries (9%).
...
[21/Nov/2007:16:47:29 +051800] - userRoot: Indexed 20000 entries (94%).
[21/Nov/2007:16:47:29 +051800] - userRoot: Indexed 21000 entries (99%).
[21/Nov/2007:16:47:29 +051800] - userRoot: Finished indexing.
vlvindex ツールは、ディレクトリサーバーインスタンスディレクトリにあります。Sun ONE サーバーで server1 および server2 の 2 つのインスタンスが動作している場合、vlvindex ツールは、Sun ONE server directory\server1 directory ディレクトリにあります。パラメーター -T の値は、サンプル lDIF で既に作成した vlvindex エントリの cn 属性の値となります。この場合、値は lcuser です。
VLV がグループに対しても有効になっている場合は、グループについて対応するインデックスを作成します。次のコマンドを実行して、インデックスが作成されているかどうかを確認します。
sun one server directory\shared\bin>ldapsearch -h hostname -p port no -s base -b "" objectclass=*
次のサンプルデータのような出力が生成されます。
D:\tools\ldap\sun\shared\bin>ldapsearch.exe -h localhost -p 55850 -s base -b "" objectclass=*
ldapsearch.exe: started Tue Nov 27 16:34:20 2007
version: 1
dn:
objectClass: top
namingContexts: dc=corp,dc=adobe,dc=com
supportedExtension: 2.16.840.1.113730.3.5.7
...
vlvsearch: cn=MCC ou=testdata dc=corp dc=adobe dc=com, cn=userRoot,cn=ldbm dat
abase,cn=plugins,cn=config
vlvsearch: cn=lcuser,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
vlvsearch: cn=Browsing ou=testdata,cn=userRoot,cn=ldbm database,cn=plugins,cn=
config
1 matches
|
|
|