Sun Java System Directory Server Enterprise Edition 6.3 管理指南

宏 ACI 示例

使用示例说明宏 ACI 的优点及其工作方式最为清楚。图 7–1显示了一个目录树,您可以在该目录树中使用宏 ACI 来有效减少 ACI 的总数。

请注意,在此图例中,相同的树结构 (ou=groups,ou=people) 具有重复的子域模式。此模式在整个树中也是重复的,因为 Example.com 目录树存储两个后缀 dc=hostedCompany2,dc=example,dc=comdc=hostedCompany3,dc=example,dc=com(图中未显示)。

目录树中的 ACI 也具有重复的模式。例如,以下 ACI 位于 dc=hostedCompany1,dc=example,dc=com 节点上:


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";)

此 ACI 为 domainAdmins 组授予对 dc=hostedCompany1,dc=example,dc=com 树中任何条目的读取和搜索权限。

图 7–1 宏 ACI 的示例目录树

示例目录树的剖析图,其中显示了 dc=hostedcompany1,dc=example,dc=com 和各个子域。

以下 ACI 位于 dc=hostedCompany1,dc=example,dc=com 节点上:


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";)

以下 ACI 位于 dc=subdomain1,dc=hostedCompany1, dc=example,dc=com 节点上:


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";)

以下 ACI 位于 dc=hostedCompany2,dc=example,dc=com 节点上:


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";)

以下 ACI 位于 dc=subdomain1,dc=hostedCompany2, dc=example,dc=com 节点上:


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 中,唯一的不同之处是在 groupdn 关键字中指定的 DN。通过为 DN 使用宏,可以在树的根部(即 dc=example,dc=com 节点上)使用一个 ACI 替换这些 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";)

请注意,此时需要使用之前未使用的关键字 target

在上述示例中,ACI 的数量从四个减少到一个。但其真正的好处取决于您在整个目录树中的重复模式数。