Red Hat Training

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

18.16.2.3. Macro Matching for ($attr.attrName)

($attr.attrName) マクロは、DN のサブジェクト部分に常に使用されます。たとえば、以下の roledn を定義します。
roledn = "ldap:///cn=DomainAdmins,($attr.ou)"
ここで、サーバーが、以下のエントリーでターゲットに設定された LDAP 操作を受け取ることを想定しています。
dn: cn=Jane Doe,ou=People,dc=HostedCompany1,dc=example,dc=com
cn: Jane Doe
sn: Doe
ou: Engineering,dc=HostedCompany1,dc=example,dc=com
...
ACI の roledn 部分を評価するため、サーバーはターゲットエントリーに保存されている ou 属性を確認し、この属性の値をマクロを展開します。そのため、この例では roledn は以下のように展開されます。
roledn = "ldap:///cn=DomainAdmins,ou=Engineering,dc=HostedCompany1,dc=example,dc=com"
次に、Directory Server は通常の ACI 評価アルゴリズムに従って ACI を評価します。
属性が多値を持つ場合、それぞれの値を使ってマクロを展開し、一致した最初の値を使用します。以下に例を示します。
dn: cn=Jane Doe,ou=People,dc=HostedCompany1,dc=example,dc=com 
cn: Jane Doe 
sn: Doe 
ou: Engineering,dc=HostedCompany1,dc=example,dc=com
ou: People,dc=HostedCompany1,dc=example,dc=com...
この場合、Directory Server が ACI を評価すると、以下の拡張された式で論理 OR が実行します。
roledn = "ldap:///cn=DomainAdmins,ou=Engineering,dc=HostedCompany1,dc=example,dc=com"

roledn = "ldap:///cn=DomainAdmins,ou=People,dc=HostedCompany1,dc=example,dc=com"