第 2 章 使用宏访问控制说明
宏访问控制指令(ACI)可让您自动执行 LDAP 条目可区分名称(DN)或其部分并减少 ACI 的数量。
2.1. 宏访问控制指令示例
下图显示了带有后缀 dc=hostedCompany1,dc=example,dc=com
和 dc=hostedCompany2,dc=example,dc=com
的目录树,其中包含子域的重复模式。每个子域具有与 ou=groups
,ou=people
条目相同的结构。目录树使用宏访问控制指令(ACI)来减少 ACI 总数。
在目录树中应用的 ACI 也具有重复模式。例如,以下 ACI 位于 dc=hostedCompany1,dc=example,dc=com
节点上,并将 DomainAdmins
组的访问权限授予该树中的任何条目:
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain)) (version 3.0; acl "Domain access"; allow (read,search) groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany1,dc=example,dc=com";)
图 2.1. 宏 ACI 示例的目录树
![宏 ACI 的目录树示例。](https://access.redhat.com/webassets/avalon/d/Red_Hat_Directory_Server-12-Managing_access_control-zh-CN/images/920ca75ec455384dd179b24f221daef3/directory-tree-for-macro-aci.png)
以下 ACI 在 groupdn
关键字中显示 DN 的不同部分:
-
dc=hostedCompany1,dc=example,dc=com
节点包含以下 ACI:
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain)) (version 3.0; acl "Domain access"; allow (read,search) groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany1,dc=example,dc=com";)
-
dc=subdomain1,dc=hostedCompany1,dc=example,dc=com
节点包含以下 ACI:
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain)) (version 3.0; acl "Domain access"; allow (read,search) groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com";)
-
dc=hostedCompany2,dc=example,dc=com
节点包含以下 ACI:
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain)) (version 3.0; acl "Domain access"; allow (read,search) groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=hostedCompany2,dc=example,dc=com";)
-
dc=subdomain1,dc=hostedCompany2,dc=example,dc=com
节点包含以下 ACI:
aci: (targetattr="*")(targetfilter=(objectClass=nsManagedDomain)) (version 3.0; acl "Domain access"; allow (read,search) groupdn="ldap:///cn=DomainAdmins,ou=Groups,dc=subdomain1,dc=hostedCompany2,dc=example,dc=com";)
使用宏替换重复模式的多个 ACI。例如,要将以上 ACI 减少为一,请使用以下宏:
aci: (target="ldap:///ou=Groups,($dn),dc=example,dc=com") (targetattr="*")(targetfilter=(objectClass=nsManagedDomain)) (version 3.0; acl "Domain access"; allow (read,search) groupdn="ldap:///cn=DomainAdmins,ou=Groups,[$dn],dc=example,dc=com";)