18.14.2. Get Effective Rights 検索の形式
Get effective rights (GER と呼ばれることもあります) は、拡張ディレクトリー検索です。GER パラメーターは、
-E
オプションを定義して、ldapsearch コマンドで LDAP コントロールを渡します。(-E
オプションなしで ldapsearch を実行すると、get effective rights 情報なしに、エントリーが通常通りに返されます。)
# ldapsearch -x -D bind_dn -W -p server_port -h server_hostname -E [!]1.3.6.1.4.1.42.2.27.9.5.2=:GER_subject (searchFilter) attributeList
-b
は、GER サブジェクトの検索に使用されるサブツリーまたはエントリーのベース DN です。検索ベースが特定のエントリー DN である場合や、1 つのエントリーのみが返される場合、結果には要求元がその特定のエントリーに対して所有している権利が表示されます。検索ベースの下にある複数のエントリーがフィルターと一致する場合、検索は一致するすべてのエントリーを返し、各エントリーに対する要求側の権限で返します。- 1.3.6.1.4.1.42.2.27.9.5.2 は、get effective rights control の OID です。
- 感嘆符 (!) は、サーバーがこの制御 (!) をサポートしていない場合に、検索操作でエラーを返すか、無視して通常通りの検索を行うか (nothing) を指定します。
- GER_subject は、権限を確認するユーザーです。GER_subject が空白 (dn:) のままの場合、匿名ユーザーの権限が返されます。
- 任意の attributeList は、Get Effective Rights 結果を指定された属性またはオブジェクトクラスに制限します。通常の ldapsearch の場合のように、
mail
などの特定の属性を指定できます。属性が表示されない場合は、エントリーの present 属性がすべて返されます。アスタリスク (*) を使用すると、エントリーに対して可能なすべての属性の権限が返されます (既存の属性と存在しない属性の両方)。プラス記号 (+) を使用すると、エントリーの操作属性が返されます。「Non-Existent 属性の Get Effective Rights 検索の例」および「特定の属性またはオブジェクトクラスの Get Effective Rights 検索の例」で特定属性の権限を確認する例。
get effective rights 検索の要点は、GER 対象者 (
-E
) が検索対象者 (-b
) に対してどのような権利を持っているかを確認できることです。get effective rights 検索は通常の ldapsearch で、検索パラメーターに一致するエントリーを検索し、その情報を返します。get effective rights オプションは、これらの検索結果に追加の情報を加え、特定のユーザーがそれらの検索結果に対してどのような権利を持っているかを示します。その GER サブジェクトユーザーは、リクエスター (-D
が -E
と同じ) でも、別のユーザーでも構いません。
要求元が (Directory Manager ではなく) 一般ユーザーである場合、要求元は GER サブジェクトが要求元独自のエントリーに存在することのみを確認できます。つまり、John Smith が Babs Jensen の持つ有効な権利を確認するために要求を実行した場合、John Smith は Babs Jensen が自分のエントリーで持つ有効な権利しか得ることができません。他のエントリーはすべて、有効権限が不十分なアクセスエラーを返します。
get effective rights 検索を実行する際の通常ユーザーには、一般的な 3 つのシナリオがあります。
- ユーザー A は、他のディレクトリーエントリーに対する権利を確認します。
- ユーザー A は、自身のエントリーに必要な権限をチェックします。
- ユーザー A は、ユーザー B がユーザー A のエントリーに対して持っている権利をチェックします。
get effective rights 検索には、属性の権利を確認するための柔軟な方法がいくつかあります。