第 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=comou=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 条目。