18.16.2. マクロ ACI 構文
マクロ ACI には、DN、または DN の一部を置き換える以下のタイプの式が含まれます。
- ($dn)
- [$dn]
- ($attr.attrName) ここで、attrName はターゲットエントリーに含まれる属性を表します。
このセクションでは、userdn、roledn、groupdn、および userattr などのバインド認証情報を提供するために使用される ACI キーワードは、ACI の ターゲット とは異なり、サブジェクト をまとめて呼びます。マクロ ACI は、ターゲット部分または ACI のサブジェクト部分で使用できます。
表18.5「ACI キーワードのマクロ」は、DN マクロを使用できる ACI の概要を示します。
マクロ | ACI キーキーワード |
---|---|
($dn) | target, targetfilter, userdn, roledn, groupdn, userattr |
[$dn] | targetfilter, userdn, roledn, groupdn, userattr |
($attr.attrName) | userdn, roledn, groupdn, userattr |
以下の制限が適用されます。
- targetfilter、userdn、roledn、groupdn、userattr で ($dn) を使用する場合は、($dn) を含むターゲットを定義する 必要があります。
- targetfilter、userdn、roledn、groupdn、userattr で [$dn] を使用する場合は、($dn) を含むターゲットを定義する 必要があります。
注記
マクロを使用する場合は、($dn) マクロが含まれるターゲット定義を 常に 必要とします。
($dn) マクロと ($attr.attrName) マクロを組み合わせることができます。
18.16.2.1. ($dn) のマクロ一致
($dn) マクロは、LDAP 要求でターゲットとするリソースの一致する部分に置き換えられます。たとえば、cn=all,ou=groups,dc=subdomain1,dc=hostedCompany1,dc=example,dc=com エントリーで LDAP 要求と、以下のようにターゲットを定義する ACI があります。
(target="ldap:///ou=Groups,($dn),dc=example,dc=com")
($dn) マクロは dc=subdomain1,dc=hostedCompany1 と一致します。
ACI のサブジェクトも ($dn) を使用する場合は、ターゲットと一致する部分文字列を使用してサブジェクトを展開します。以下に例を示します。
aci: (target="ldap:///ou=*,($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";)
この場合、ターゲットの ($dn) に一致する文字列が dc=subdomain1,dc=hostedCompany1 の場合、サブジェクトで同じ文字列が使用されます。その後、ACI は以下のように拡張されます。
aci: (target="ldap:///ou=Groups,dc=subdomain1,dc=hostedCompany1, dc=example,dc=com") (targetattr = "*") (version 3.0; acl "Domain access"; allow (read,search) groupdn="ldap:///cn=DomainAdmins,ou=Groups, dc=subdomain1,dc=hostedCompany1,dc=example,dc=com";)
マクロの拡張後、Directory Server は通常のプロセスに従って ACI を評価し、アクセスが付与されているかどうかを確認します。