18.14.3.4. 存在しないエントリーの get effective rights 検索の例
管理者は、既存のアクセス制御ルールに基づいて、特定のユーザー (
jsmith
) が存在しないユーザーにどのような権限を確認したい場合があります。存在しないエントリーをチェックする場合、サーバーはそのサブツリー内にダミーエントリーを生成します。たとえば、ダミーエントリー cn=joe new user,cn=accounts,ou=people,dc=example,dc=com
を確認するには、サーバーは cn=template,cn=accounts,ou=people,dc=example,dc=com
を作成します。
存在しないエントリーをチェックする場合、get effective rights 検索は、指定したオブジェクトクラスを使用して、(存在しない) エントリーのすべての属性を持つテンプレートエントリーを生成することができます。person のオブジェクトクラス (
@person
) を持つ cn=joe new user,cn=accounts,ou=people,dc=example,dc=com
の場合、サーバーは cn=template_person_objectclass,cn=accounts,ou=people,dc=example,dc=com
を生成します。
サーバーがテンプレートエントリーを作成すると、オブジェクトクラス定義の最初の MUST 属性を使用して RDN 属性を作成します (または、MUST 属性がない場合は MAY を使用します)。しかし、これは誤った RDN 値になる可能性があり、その結果、与えられたサブツリーに対して確立された ACI に違反または回避することになります。この場合は、使用する RDN 値をオブジェクトクラスを渡すことで指定できます。これには @objectclass:rdn_attribute の形式があります。
たとえば、RDN として、
uidNumber
の存在しない Posix エントリーについて scarter
の権限を確認するには、次のコマンドを実行します。
# ldapsearch -D "cn=Directory Manager" -W -b "ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" @posixaccount:uidnumber
dn: uidNumber=template_posixaccount_objectclass,ou=people,dc=example,dc=com
entryLevelRights: v
attributeLevelRights: description:rsc, gecos:rsc, loginShell:rsc, userPassword
:rsc, objectClass:rsc, homeDirectory:rsc, gidNumber:rsc, uidNumber:rsc, uid:
rsc, cn:rsc