18.2. ACI 配置
Directory Server は、ディレクトリーエントリーの複数値の
aci
操作属性に ACI を保存します。ACI を設定するには、aci
属性を対応するディレクトリーエントリーに追加します。Directory Server は ACI を適用します。
- ACI を含むエントリー (子エントリーがない場合) にのみ適用されます。たとえば、クライアントが uid=user_name,ou=People,dc=example,dc=com オブジェクトへのアクセスを必要とし、ACI が dc=example,dc=com にのみ設定されており、子エントリーには設定されていない場合は、この ACI のみが適用されます。注記add 権限を持つ ACI は、今後作成される子エントリーにも適用されます。
- ACI を含むエントリーと、(子エントリーがある場合は) その下のすべてのエントリーへ。これにより、サーバーが指定のエントリーに対するアクセスパーミッションを評価すると、リクエストされたディレクトリー接尾辞と、エントリー自体の ACI との間のすべてのエントリーについて ACI を検証します。たとえば、ACI は dc=example,dc=com と ou=People,dc=example,dc=com のエントリーに設定されています。クライアントが ACI セットのない uid=user_name,ou=People,dc=example,dc=com オブジェクトにアクセスする場合、ディレクトリーサーバーは、まず dc=example,dc=com と ou=People,dc=example,dc=com からの ACI でセットを作成します。Directory Server は、適用可能な ACI のリストを、ターゲットエントリーから一番上の接尾辞までボトムアップで作成します。ただし、このリストはセットとして考えてください。クライアントアプリケーションは、ACI 評価の順序を予測するべきではありません。サーバーは、この初期セットから適用可能な ACI の最終セットを作成するリソースエントリーに一致する ACI を選択します。次に、最初に権限を拒否する ACI を評価します。DENY ACI が正常に評価された場合、操作は失敗します。DENY ACI が見つからない場合、Directory Server は ALLOW パーミッションを付与する ACI が存在するかどうかを確認します。ACI の少なくとも 1 つがアクセスを許可する場合、Directory Server はアクセスを許可します。ALLOW パーミッションを付与する ACI がない場合、Directory Server はアクセスを拒否し、操作は失敗します。
注記
rootDSE エントリーに設定された ACI はこのエントリーにのみ適用されます。
エントリーで作成された ACI は、そのエントリーに直接適用するのではなく、以下のサブツリーの一部のエントリーまたはすべてのエントリーに適用できます。この方法の利点は、一般的な ACI をディレクトリーツリーの上位において、下位にあるエントリーに影響を与えることができることです。たとえば、inetOrgPerson オブジェクトクラスを含むエントリーをターゲットにする ACI は、
organizationalUnit
エントリーまたは locality
エントリーのレベルで作成できます。
注記
一般的なルールを高レベルのブランチポイントに配置し、ディレクトリーツリー内の ACI の数を最小限にします。より具体的なルールの範囲を制限するには、できるだけ早くリーフエントリーに配置します。