ダイナミックグループは groupOfURLs オブジェクトクラスと 0 個以上の memberURL 属性を持ちます。各 memberURL 属性は、一連のオブジェクトを記述する LDAP URL です。
LDAP サービスに対しては、任意の属性に基づいてユーザーを自動的にグループ化する場合、または一致する DN を含む特定のグループに ACL を適用する場合に、Web Server でダイナミックグループを作成できます。たとえば、属性 department=marketing 持つすべての DN を自動的に含めるグループを作成できます。department=marketing を目的とする検索フィルタを適用すると、この検索によって、属性 department=marketing を持つすべての DN を含むグループが返されます。次に、このフィルタに基づいて検索結果からダイナミックグループを定義できます。さらに、結果として生成されるダイナミックグループの ACL を定義できます。
Web Server は、LDAP サーバースキーマ内でダイナミックグループを objectclass = groupOfURLs として実装しています。groupOfURLS クラスは memberURL 属性を複数持つことができます。各 memberURL 属性は、ディレクトリ内の一連のオブジェクトを列挙する単一の LDAP URL で構成されます。グループのメンバーは、これらのセットの和集合です。たとえば、次のグループにはメンバー URL が 1 つだけ含まれています。
ldap:///o=mcom.com??sub?(department=marketing)
この例は、「o=mcom.com」の下にある、department が「marketing」になっているすべてのオブジェクトから成るセットを示したものです。LDAP URL には、検索ベース DN、スコープ、フィルタは含められますが、ホスト名やポートは含められません。つまり、同じ LDAP サーバー上のオブジェクトだけを参照できます。すべてのスコープがサポートされます。
グループに DN を個別に追加しなくても、すべての DN が自動的に組み込まれます。Sun Java System Web Server は ACL 検証でグループ検索が必要になるたびに LDAP サーバー検索を行うため、グループは動的に変化します。ACL ファイルで使用されるユーザー名とグループ名は、LDAP データベース内のオブジェクトの cn 属性に対応します。
Web Server は、cn (commonName) 属性を ACL のグループ名として使用します。
ACL から LDAP データベースへのマッピングは、dbswitch.conf 構成ファイル (ACL データベース名と実際の LDAP データベース URL を関連付ける) と ACL ファイル (どの ACL でどのデータベースが使用されるかを定義する) の両方に定義されます。たとえば、「staff」というグループのメンバーシップに基本アクセス権を設定する場合、ACL コードは groupOf<anything> というオブジェクトクラスを持ち、CN が「staff」に設定されているオブジェクトを検索します。オブジェクトは、スタティックグループの groupOfUniqueNames のようにメンバーの DN を明示的に列挙するか、groupOfURLs のように LDAP URL を指定することによって、グループのメンバーを定義します。
グループオブジェクトは、objectclass = groupOfUniqueMembers と objectclass = groupOfURLs の両方を持つことができます。したがって、「uniqueMember」属性と「memberURL」属性のどちらも有効になります。グループのメンバーシップは、スタティックメンバーとダイナミックメンバーの和集合になります。
ダイナミックグループを使用すると、サーバーのパフォーマンスに影響があります。グループメンバーシップをテストするときに、DN がスタティックグループのメンバーではない場合、Web Server はデータベースのベース DN に含まれるすべてのダイナミックグループをチェックします。Web Server はこのタスクを実行するために、各 memberURL が一致するかどうかをチェックします。具体的には、そのベース DN とスコープに基づいてユーザーの DN をチェックしたあと、ベース DN としてのユーザー DN と memberURL のフィルタを使ってベース検索を実行します。この処理では、膨大な数の検索が行われることがあります。
新規のダイナミックグループを作成するために管理サーバーを使用するときには、次のガイドラインを考慮してください。
ダイナミックグループにほかのグループを含めることはできません。
グループの LDAP URL を次の形式で入力します (ホストとポートの情報は不要。これらのパラメータは無視される)。
ldap:///<base_dn>?<attributes>?<scope>?<(filter)>
必須パラメータについて、次の表で説明します。
<attributes>、<scope>、および <(filter)> パラメータは、URL 内での位置によって識別されます。どの属性も指定しない場合でも、疑問符を含めてそのフィールドを区切る必要があります。
オプションで、新しいグループの説明を追加することもできます。
定義済みの組織単位がディレクトリに存在している場合、「新規グループの追加先」リストを使って新しいグループの配置場所を指定できます。デフォルトの場所は、ディレクトリのルートポイント、つまり最上位のエントリです。