($attr.attrname) マクロは、常に DN のサブジェクト部分で使用されます。たとえば、次のような roledn を定義できます。
roledn = "ldap:///cn=DomainAdmins,($attr.ou),dc=HostedCompany1,dc=example,dc=com" |
ここで、サーバーが次のエントリをターゲットとする LDAP 操作を受け取ったとします。
dn: cn=Babs Jensen,ou=People,dc=HostedCompany1,dc=example,dc=com cn: Babs Jensen sn: Jensen ou: Sales ... |
ACI の roledn 部分を評価するために、サーバーはターゲットエントリの ou 属性の値を読み取ります。そのあと、サブジェクト内でこの値を置換してマクロを展開します。この例では、roledn は次のように展開されます。
roledn = "ldap:///cn=DomainAdmins,ou=Sales,dc=HostedCompany1,dc=example,dc=com" |
続いて、通常の ACI 評価アルゴリズムに従って、Directory Server が ACI を評価します。
マクロ内で指定された属性が複数の値を持つ場合は、それぞれの値でマクロが展開されます。最初にマッチングに成功した値が使用されます。