設定するエンタープライズドメインごとに、認証プロバイダーがユーザー情報のクエリーを実行するディレクトリを指定します。既存のエンタープライズドメインまたは追加する新しいエンタープライズドメインにディレクトリを追加できます。1 つのドメインに対して複数のディレクトリを設定できます。また、ドメインでカスタムのサービスプロバイダーインターフェイス(SPI)を同期に使用するように設定することもできます。
-
ディレクトリサーバーの設定を行います(ディレクトリ設定を参照)。
-
「ユーザー設定」を選択し、必要に応じて設定を行います(ディレクトリ設定を参照)。
-
BaseDN など設定した属性で正しいユーザーの集合が収集されることを確認するには、「テスト」をクリックします。LDAP で、指定された設定(BaseDN、検索フィルター、すべての属性など)を使用して最初の 200 件のレコードの取得が試行されます。
ユーザーが返される場合、属性セットに従って各フィールドに割り当てられる値が結果に示されます。サーバー名が存在しないこと、認証情報が正しくないことまたは属性が正しくないことが原因でテストが失敗した場合は、「指定した検索条件では結果が返されませんでした」というエラーメッセージが表示されます。エラーの根本原因を特定するには、アプリケーションサーバーのログファイルで例外を確認します。「閉じる」をクリックし、「次へ」をクリックします。
-
「グループ設定」を選択し、必要に応じて設定を行います(ディレクトリ設定を参照)。
カスタム SPI の作成について詳しくは、「AEM Forms によるプログラミング」の「AEM Forms の SPI の開発」を参照してください。新しくデプロイしたカスタム SPI をドメインとの関連付けに使用できるようにするには、サーバーを再起動します。
-
必要に応じて、ディレクトリ、ユーザーおよびグループの設定を行います(ディレクトリ設定を参照)。
注意:
エンタープライズドメインには、少なくとも 1 つの認証プロバイダーまたはディレクトリプロバイダーが必要です。
サーバー:
(必須)ディレクトリサーバーの完全修飾ドメイン名(FQDN)。例えば、corp.adobe.com ネットワーク上の x というコンピューターの場合、FQDN は x.corp.adobe.com です。FQDN サーバー名の代わりに IP アドレスを使用することもできます。
ポート:
(必須)ディレクトリサーバーによって使用されるポート。通常は 389 で、Secure Sockets Layer(SSL)プロトコルを使用してネットワーク経由で認証情報を送信する場合は 636 です。
SSL:
(必須)ネットワーク経由でデータを送信するときにディレクトリサーバーで SSL を使用するかどうかを指定します。デフォルトは「いいえ」です。「はい」に設定する場合、対応する LDAP サーバー証明書はアプリケーションサーバーの Java™ ランタイム環境(JRE)によって信頼されている必要があります。
Name:
匿名アクセスが有効になっていないときに、LDAP データベースに接続するために使用できる名前。Active Directory 2003 の場合、[domain name]\[userid] を指定します。Sun™ One、eDirectory または IBM Tivoli Directory Server の場合、uid=lcus r,ou=it,o=company.com のようにユーザーの完全修飾名を指定します。
リファラルを有効にする:
この設定は、組織が階層構造で編成されている複数の Active Directory ドメインを使用し、1 つの親ドメインにのみディレクトリ設定を指定した場合に適用されます。この状況で、このオプションを選択すると、User Management は子ドメインからユーザーおよびグループの詳細にアクセスできます。
注意:LDAP サーバーに接続できることを確認するには、「テスト」をクリックします。エラーの根本原因を特定するには、アプリケーションサーバーのログファイルで例外を確認します。
固有な識別子:
(必須)ユーザーの識別に使用する固有で一定の属性。ユーザーが組織の別部門に異動した場合、ユーザーの DN は変わる可能性があるので、固有な識別子として非 DN 属性を使用します。この設定は、ディレクトリサーバーによって異なります。Active Directory 2003 での値は objectGUID、Sun™ One では nsuniqueID、eDirectory では guid です。
注意:組織内で一意となっている属性が入力されていることを確認してください。入力した値が正しくない場合、システムに重大な問題が発生します。
BaseDN:
LDAP 階層からユーザーおよびグループを同期するための開始点として設定されます。サービスのために同期する必要があるすべてのユーザーおよびグループを含む階層の最下位レベルの BaseDN を指定することをお勧めします。
ディレクトリ設定で「リファラルを有効にする」オプションを選択した場合、DN の dc 部分に「BaseDN」オプションを設定します。リファラルが機能するには、検索範囲に親ドメインと子ドメインの両方が含まれている必要があります。
注意:この設定にユーザーの DN は含めないでください。特定のユーザーを同期するには、検索フィルター設定を使用します。
「BaseDN」は管理コンソールの必須の設定ですが、IBM Domino Enterprise Server などのディレクトリサーバーでは、空の BaseDN が必要になる場合があります。空の BaseDN を指定するには、config.xml ファイルを書き出し、config.xml ファイルの設定を編集して、再度読み込みます(設定ファイルの読み込みと書き出しを参照)。
Search Filter:
(必須)ユーザーに関連付けられているレコードを検索するために使用する検索フィルター。1 レベル検索またはサブレベル検索を実行できます(Search Filter Syntax または RFC 2254 を参照)。Microsoft AD スキーマについて詳しくは、Active Directory Schema を参照してください。
業務カレンダー:
この設定の値に基づいて、業務カレンダーをユーザーにマッピングします(業務カレンダーキー)。業務カレンダーによって稼働日と非稼働日が定義されます。AEM Forms では、リマインダー、デッドラインおよびエスカレーションなどのイベントの今後の日付や時間を計算するときに、この業務カレンダーを使用できます。業務カレンダーキーをユーザーに割り当てる方法は、エンタープライズドメイン、ローカルドメイン、ハイブリッドドメインのどれを使用しているかによって異なります(業務カレンダーの設定を参照)。
エンタープライズドメインを使用している場合は、業務カレンダー設定を LDAP ディレクトリのフィールドにマップできます。例えば、ディレクトリ内の各ユーザーレコードに「国」フィールドがあり、ユーザーの所在地に基づいて業務カレンダーを割り当てる場合は、「国」のフィールド名を業務カレンダー設定の値として指定します。その後、業務カレンダーキー(LDAP ディレクトリの「国」フィールドに対して定義された値)を forms ワークフローの業務カレンダーにマップできます。
forms ワークフローのページで業務カレンダーキーの名前を表示するために使用される領域のサイズには制限があります。これらのページで業務カレンダーキーの名前が切り捨てられないようにするには、名前を 53 文字未満に制限します。
仮想一覧表示(VLV)コントロールを有効にする:
AEM Forms がディレクトリサーバーからデータをバッチで取得できるようにする LDAP コントロール。LDAP ディレクトリとして Sun One を使用しており、ディレクトリに含まれるユーザー数が多い場合は、VLV を有効にすると User Management がユーザーの検索に使用できるインデックスが作成されます。この機能は、限定された量のデータのみ同期できる標準ユーザーアカウントを使用するときに役立ちます。VLV をグループに有効化することもできます。「仮想一覧表示(VLV)コントロールを有効にする」を選択する場合は、「フィールドをソート」ボックスに名前を指定します。
注意:VLV を有効にするには、Sun One を設定します。(仮想一覧表示(VLV)での User Management の設定を参照)。
フィールドをソート:
「仮想一覧表示(VLV)コントロールを有効にする」を選択した場合、インデックスのソートに使用する属性名を指定します。この属性名(uid など)は、ディレクトリサーバーに VLV のインデックスを作成したときに指定した名前です。
固有な識別子:
(必須)グループの識別に使用する固有で一定の属性。固有な識別子として DN 以外の属性を使用します。この設定は、ディレクトリサーバーによって異なります。Active Directory 2003 での値は objectGUID、Sun One では nsuniqueID、eDirectory では guid です。
注意:組織内で一意となっている属性が入力されていることを確認してください。入力した値が正しくない場合、システムに重大な問題が発生します。
BaseDN:
(必須)ディレクトリの基本識別名。
「BaseDN」は管理コンソールの必須の設定ですが、IBM Domino Enterprise Server などのディレクトリサーバーでは、空の BaseDN が必要です。空の BaseDN を指定するには、config.xml ファイルを書き出し、config.xml ファイルの設定を編集して、再度読み込みます(設定ファイルの読み込みと書き出しを参照)。
固有な識別子:
選択したグループのメンバーであるユーザーまたはグループの固有な識別子。この値は、ディレクトリサーバーによって異なります。AD2003 の場合の値は objectSID、Sun One の場合は nsuniqueID、eDirectory の場合は guid です。
「メンバー DN」に DN 以外の属性を指定した場合、User Management では「固有な識別子」の値を使用して LDAP に対するクエリーが実行され、固有な識別子の値に対応するユーザーの DN が収集されます。
固有な識別子として DN を指定した場合は、「固有な識別子」の値を設定する必要はありません。
仮想一覧表示(VLV)コントロールを有効にする:
AEM Forms がディレクトリサーバーからデータをバッチで取得できるようにする LDAP コントロール。LDAP ディレクトリとして Sun One を使用しており、ディレクトリに含まれるグループ数が多い場合は、VLV を有効にすると User Management がグループの検索に使用できるインデックスが作成されます。この機能は、限定された量のデータのみ同期できる標準ユーザーアカウントを使用するときに役立ちます。VLV をユーザーに有効化することもできます。「仮想一覧表示(VLV)コントロールを有効にする」を選択する場合は、「Sort Field Name」を指定します。
注意:VLV を有効にするには、Sun One を設定します。(仮想一覧表示(VLV)での User Management の設定を参照)。
Sort Field Name:
「仮想一覧表示(VLV)コントロールを有効にする」を選択した場合、インデックスのソートに使用する属性名を指定します。この属性名は、ディレクトリサーバーに VLV のインデックスを作成したときに指定した名前です。
注意:「テスト」をクリックして、ユーザー設定とグループ設定が BaseDN および検索条件に基づいて収集されることを確認します。ユーザーおよびグループが返される場合、属性セットに従って各フィールドに割り当てられる値が結果に示されます。
注意:User Management では 1 つのドメイン内でのユーザー ID の重複はサポートされておらず、1 つのユーザー ID について 1 人のユーザーのみが同期されます。
ディレクトリ同期は、User Management にとって重要な要件です。ユーザーやグループは、ロールおよび権限の割り当てのために、エンタープライズディレクトリから AEM Forms データベースに同期されます。ユーザーの数は要件によって 100 から 100,000 以上と様々であり、データを効率的に同期させる際の技術的課題となっています。
LDAP プロトコルには、要求コントロールを使用したページ分割という方法でサイズの大きなデータセットに対してクエリーを実行するメカニズムがあります。Microsoft Active Directory を使用している場合、LDAP から AEM Forms データベースへの同期を実行すると、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 管理コンソールまたはコマンドラインスクリプトを使用します。コマンドラインスクリプトでは、ユーザーおよびグループに関するサンプルの LDIF ファイルを使用できます(VLV 用の Sun ONE Directory Server の設定を参照)。
-
サーバーを停止し、必要なインデックスを作成します(ディレクトリサーバーでの VLV のインデックスの作成を参照)。
VLV を作成するには、vlvSearch および vlvIndex の各オブジェクトクラスが含まれている 1 組のエントリが必要です。vlvSearch エントリには検索ベースおよび vlvFilter 属性が含まれており、このうち vlvFilter 属性ではソート対象の属性が含まれているオブジェクトクラスを指定します。vlvIndex オブジェクトクラスには、ソート対象の属性とソート順序を指定する vlvSort 属性が含まれています(「-」符号はアルファベットの逆順であることを示します)。AEM Forms で VLV を使用するには、ユーザーのエントリとグループのエントリを個別に作成する必要があります。
注意:
オブジェクトエントリを作成するには、Sun ONE グラフィカルユーザーインターフェイス(GUI)またはコマンドラインスクリプトを使用します。GUI を使用してオブジェクトエントリを作成する手順については、Sun One のマニュアルを参照してください。
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 エントリがあります。このエントリは、AEM Forms でユーザー同期を実現する VLV 関連設定用のエントリです。適宜、次のプロパティを変更します。
エントリ名:このサンプルのエントリ名は lcuser です。lcuser を変更する場合は、サンプルスクリプトのすべての領域で lcuser を変更する必要があります。
vlvBase:ユーザー設定ページに指定されている BaseDN です。
vlvFilter:ユーザー設定ページに指定されている検索フィルターです。
vlvSort:ユーザー設定ページの VLV 設定セクションに指定されているソートフィールドです。VLV コントロールには、ソートコントロールを指定する必要があります。このフィールドは、作成した vlv インデックスのソートパラメーターとして使用されます。
aci:サンプルスクリプトに指定されているアクセス制御は、認証済みユーザーに対して、VLV インデックスにアクセスして読み取り、検索、比較の各操作を実行する権限を付与します。管理者は、User Management ユーザーインターフェイスのディレクトリサーバー設定ページに設定されているバインドユーザーにアクセスを制限できます。権限が付与されていない場合、ユーザー検索で VLV を使用できなくなり、LDAP サーバーで権限の例外が発生します。
注意:
慣例により、vlvIndex エントリ名も lcuser に設定しますが、異なる名前を付けることもできます。vlvindex ツールにも同じ名前を使用します(ディレクトリサーバーでの VLV のインデックスの作成を参照)。
-
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"
-
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.
-
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