
OpenLDAP のサブ組織の ACL を追加したいと思います。
これは ACL ドキュメントです: https://www.openldap.org/doc/admin24/access-control.html
ldapmodify
実行中の OpenLDAP インスタンス上の LDAP DB を更新するために使用しています。
これはldifインポートしたファイル:
vim ro_access.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {2}to dn.children="ou=users,dc=example,dc=com" by dn.exact="cn=workstation,ou=applications,dc=example,dc=com" read
私が期待する
cn=workstation,ou=applications,dc=example,dc=com
児童の読み書きができる必要があるou=users,dc=example,dc=com
auth
前述のデフォルトの動作を実行する必要があります。anonymous
前述のデフォルトの動作を実行する必要があります。
私は持っている
ldapwhoami
一緒に働くcn=workstation,ou=applications,dc=example,dc=com
ldapsearch
結果を返すuid=someone,ou=users,dc=example,dc=com
のに失敗しましたcn=workstation,ou=applications,dc=example,dc=com
編集
olcAccess
{1}
を{2}
、{2}
を に置き換えてみました{1}
。
これは完全に置き換えられた ACL ですが、これも機能しません。
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by dn="cn
=admin,dc=example,dc=com" write by dn="cn=ropw,dc=example,dc=co
m" read by anonymous auth by * none
olcaccess: {1}to dn.children="ou=users,dc=example,dc=com" by dn
.exact="cn=workstation,ou=applications,dc=example,dc=com" read
olcaccess: {2}to * by self write by dn="cn=admin,dc=example,dc=com" write
by dn="cn=ro,dc=example,dc=com" read by dn="cn=ropw,dc=exam
ple,dc=com" read by * none
理由が分かりますか?
答え1
by anonymous auth by * none
ACL ディレクティブの最後に以下を追加してみてください:
olcAccess: {1}to dn.children="ou=users,dc=example,dc=com" by dn
.exact="cn=workstation,ou=applications,dc=example,dc=com" read
by anonymous auth by * none