グループとは、LDAP データベース内の一連のオブジェクトを記述するオブジェクトのことです。Web Server 7.0 のグループは、共通の属性を共有するユーザーから構成されます。たとえば、会社のマーケティング部門で働く多数の従業員がオブジェクトのセットになります。これらの従業員は、Marketing という名前のグループに所属させることができます。
LDAP サービスに対しては、グループのメンバーシップを定義する方法が 2 つあります。スタティックとダイナミックです。スタティックグループは、自身のメンバーオブジェクトを明示的に列挙します。スタティックグループは CN であり、uniqueMember、memberURL、memberCertDescription のいずれかまたはその任意の組み合わせを含みます。スタティックグループでは、メンバーは CN=<Groupname> 属性以外の共通属性を共有しません。
ダイナミックグループでは、LDAP URL を使用してグループメンバーにだけ一致する規則セットを定義できます。ダイナミックグループでは、メンバーは memberURL フィルタに定義される 1 つの属性または一連の属性を共有します。たとえば、営業部門のすべての従業員を含むグループが必要で、それらの従業員がすでに LDAP データベース内の
「ou=Sales,o=sun」の下に存在している場合、次の memberurl を含むダイナミックグループを定義します。
ldap:///ou=Sales,o=sun??sub?(uid=*)
結果として、このグループには、「ou=Sales,o=sun」ポイントの下のツリーに uid 属性を持つすべてのオブジェクト、つまりすべての Sales メンバーが含まれます。
スタティックおよびダイナミックグループで、memberCertDescription を使用している場合は、メンバーは証明書から共通属性を共有できます。ただし、これらは、ACL が SSL メソッドを使用している場合にだけ機能します。
新しいグループの作成が完了すると、そのグループにユーザーつまりメンバーを追加できます。
LDAP サービスでは、管理サーバーを使用し、任意のユーザー数の DN に同じグループ属性を指定して、スタティックグループを作成できます。ユーザーが追加または削除されないかぎり、スタティックグループが変わることはありません。
管理サーバーのフォームを使って新しいスタティックグループを作成する場合には、次の指針を参考にしてください。
スタティックグループには、その他のスタティックグループまたはダイナミックグループを含めることができます。
オプションで、新しいグループの説明を追加することもできます。
定義済みの組織単位がディレクトリに存在している場合、「新規グループの追加先」リストを使って新しいグループの配置場所を指定できます。デフォルトの場所は、ディレクトリのルートポイント、つまり最上位のエントリです。
ダイナミックグループは 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 内での位置によって識別されます。どの属性も指定しない場合でも、疑問符を含めてそのフィールドを区切る必要があります。
オプションで、新しいグループの説明を追加することもできます。
定義済みの組織単位がディレクトリに存在している場合、「新規グループの追加先」リストを使って新しいグループの配置場所を指定できます。デフォルトの場所は、ディレクトリのルートポイント、つまり最上位のエントリです。