第 1 章 管理访问控制指令
当 Directory 服务器收到请求时,它使用用户在绑定操作中定义的验证信息,以及目录中定义的访问控制指令(ACI),以允许或拒绝对所请求的条目或属性的访问。服务器可以允许或拒绝操作权限,如 读取
、写入
、搜索和
比较
。授予用户的权限级别取决于提供的身份验证信息。
Directory Server 中的访问控制允许您在适用于 ACI 时设置精确的规则:
- 对于整个目录、子树或特定条目
- 对于特定用户,属于特定组或角色的所有用户,或 目录中的所有用户
对于特定位置,如 IP 地址、IP 范围或 DNS 名称。
请注意,负载均衡器可能会影响特定于位置的规则。
难以阅读和理解复杂的 ACI。您可以编写多个简单规则来实现同样的效果,而不是一个复杂的 ACI。但是,有大量 ACI 也会增加 ACI 处理的成本。
1.1. ACI 放置
目录服务器在目录条目中的多值 aci
operational 属性中存储访问控制指令(ACI)。要设置 ACI,请在对应的目录条目中添加 aci
属性。目录服务器应用 ACI:
如果没有任何子条目,则 仅限包含 ACI 的条目。例如,如果客户端需要访问
uid=user_name,ou=People,dc=example,dc=com
对象,并且 ACI 在dc=example,dc=com
上仅应用于任何子条目,则仅应用此 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
对象,没有 ACI 设置,Directory 服务器会首先验证ou=People,dc=example,dc=com
条目上的 ACI。如果此 ACI 授予访问权限,评估将停止并授予访问权限。如果没有,Directory 服务器会在ou=People,dc=example,dc=com
上验证 ACI。如果此 ACI 成功授权客户端,它可以访问对象。
rootDSE
条目中设置的 ACI 仅适用于此条目。
在条目上创建的 ACI 可以不直接应用到该条目,而是将其设置为以下子树中的一些或全部条目。这种方法的优势在于,可以将常规 ACI 放入目录树中,使其对位于树里的条目产生影响。例如,可以在 organizationalUnit
条目或本地性条目中创建包含 inetOrgPerson
对象类的 ACI。
通过将常规规则放置到高级别分支点,将 ACI 的数量减小到目录树中。要限制更具体规则的范围,请尽可能将它们放入 leaf 条目。