Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

18.16.2.2. [$dn] のマクロ一致

[$dn] と一致するメカニズムは、($dn) とは若干異なります。対象となるリソースの DN は、一致するものが見つかるまで、左端の RDN コンポーネントを削除するたびに複数回調べられます。
たとえば、cn=all,ou=groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com サブツリーをターゲットとする LDAP 要求と、以下の ACI があります。
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";)
この ACI を拡張する手順は以下のとおりです。
  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";)
cn=DomainAdmins,ou=Groups,dc=hostedCompany1,dc=example,dc=com のメンバーに、dc=hostedCompany1 の下にあるすべてのサブドメインへのアクセス権限を付与します。そのため、該当グループに属する管理者は ou=people,dc=subdomain1.1,dc=subdomain1 などのサブツリーにアクセスできます。
ただし、同時に cn=DomainAdmins,ou=Groups,dc=subdomain1.1 のメンバーは、ou=people,dc=hostedCompany1 および ou=people,dc=hostedCompany1 ノードへのアクセスが拒否されます。