Sun Java System Web Server 7.0 管理ガイド

ダイナミックグループ

ダイナミックグループは groupOfURLs オブジェクトクラスと 0 個以上の memberURL 属性を持ちます。各 memberURL 属性は、一連のオブジェクトを記述する LDAP URL です。

LDAP サービスに対しては、任意の属性に基づいてユーザーを自動的にグループ化する場合、または一致する DN を含む特定のグループに ACL を適用する場合に、Web Server でダイナミックグループを作成できます。たとえば、属性 department=marketing 持つすべての DN を自動的に含めるグループを作成できます。department=marketing を目的とする検索フィルタを適用すると、この検索によって、属性 department=marketing を持つすべての DN を含むグループが返されます。次に、このフィルタに基づいて検索結果からダイナミックグループを定義できます。さらに、結果として生成されるダイナミックグループの ACL を定義できます。

Web Server でのダイナミックグループの実装方法

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 = groupOfUniqueMembersobjectclass = groupOfURLs の両方を持つことができます。したがって、「uniqueMember」属性と「memberURL」属性のどちらも有効になります。グループのメンバーシップは、スタティックメンバーとダイナミックメンバーの和集合になります。

サーバーのパフォーマンスに対するダイナミックグループの影響

ダイナミックグループを使用すると、サーバーのパフォーマンスに影響があります。グループメンバーシップをテストするときに、DN がスタティックグループのメンバーではない場合、Web Server はデータベースのベース DN に含まれるすべてのダイナミックグループをチェックします。Web Server はこのタスクを実行するために、各 memberURL が一致するかどうかをチェックします。具体的には、そのベース DN とスコープに基づいてユーザーの DN をチェックしたあと、ベース DN としてのユーザー DN と memberURL のフィルタを使ってベース検索を実行します。この処理では、膨大な数の検索が行われることがあります。

ダイナミックグループ作成時の指針

新規のダイナミックグループを作成するために管理サーバーを使用するときには、次のガイドラインを考慮してください。

表 8–1 ダイナミックグループ: 必須パラメータ

パラメータ名 

説明 

<base_dn>

検索ベースの識別名 (DN)、またはポイント。すべての検索は、LDAP ディレクトリ内のこの場所から実行されます。多くの場合、このパラメータは、o=mcom.com のようにディレクトリのサフィックスまたはルートに設定されます。

<attributes>

検索によって返される属性のリスト。複数の属性を指定するには、「cn,mail,telephoneNumber」のように、属性をコンマで区切ります。属性を指定しないと、すべての属性が返されます。このパラメータは、ダイナミックグループメンバーシップのチェックでは無視されます。

<scope>

検索のスコープ。次のいずれかの値を指定します。 

  • base は URL に指定された識別名 (<base_dn>) に関する情報だけを取得します。

  • one は URL に指定された識別名 (<base_dn>) の 1 レベル下のエントリに関する情報を取得します。このスコープにはベースエントリは含まれません。

  • sub は URL に指定された識別名 (<base_dn>) の下のすべてのレベルのエントリに関する情報を取得します。このスコープにはベースエントリが含まれます。

    このパラメータは必須です。

<(filter)>

検索範囲内のエントリに適用される検索フィルタです。管理サーバーのフォームを使用する場合は、この属性を指定する必要があります。括弧は必須であることに注意してください。 

このパラメータは必須です。 

<attributes><scope>、および <(filter)> パラメータは、URL 内での位置によって識別されます。どの属性も指定しない場合でも、疑問符を含めてそのフィールドを区切る必要があります。