2.4. [$dn] 宏示例


[$dn] 宏检查目标源的 DN 多次。这个宏会丢弃每个迭代最多的 RDN 组件,直到找到匹配项。

例如,您在 cn=all,ou=groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com 子树中使用目标的 LDAP 请求:

aci: (target="ldap:///ou=groups,($dn),dc=example,dc=com")
     (targetattr = "*") (version 3.0; acl "Domain access"; allow (read,search)
     groupdn="ldap:///cn=domainAdmins,ou=groups,[$dn],dc=example,dc=com";)
Copy to Clipboard Toggle word wrap

宏展开,如下所示:

  1. 目标中的 ($dn)dc=subdomain1,dc=hostedCompany1 匹配。
  2. 主体中的 [$dn] 的替换为 dc=subdomain1,dc=hostedCompany1

    结果为 groupdn="ldap:///cn=domainAdmins,ou=Groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com"。如果绑定 DN 是该组的成员,则匹配的进程会停止,并且评估 ACI。如果结果不匹配,该过程将继续并丢弃最左边的部分。

  3. 主题中的 [$dn] 是 dc=hostedCompany1

    结果为 groupdn="ldap:///cn=domainAdmins,ou=Groups,dc=hostedCompany1,dc=example,dc=com"。如果绑定 DN 不是该组的成员,则不会评估 ACI。如果是一个成员,则评估 ACI。

[$dn] 宏将对域级别管理员的访问权限授予目录树中的所有子域。它可用于表达域之间的分层关系。例如,请考虑以下 ACI:

aci: (target="ldap:///ou=*, ($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";)
Copy to Clipboard Toggle word wrap

此 ACI 将 cn=domainAdmins,ou=groups,dc=hostedCompany1,dc=example,dc=com 的访问权限授予 dc=hostedCompany1 下的所有子域。属于该组成员的管理员可以访问 ou=body,dc=subdomain1.1,dc=subdomain1 等子树。但是 cn=domainAdmins,ou=groups,dc=subdomain1.1 的成员无法访问 ou=body,dc=hostedCompany1ou=body,dc=subdomain1,dc=hostedCompany1 节点。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat