web-dev-qa-db-ja.com

OpenLDAPにACLを追加する方法

OpenLDAPにサブ組織のACLを追加したい。

これは彼らのACLドキュメントです: https://www.openldap.org/doc/admin24/access-control.html

ldapmodifyを使用して、実行中のOpenLDAPインスタンスのLDAPデータベースを更新しています。

これは私がインポートした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があり、前述のデフォルトの動作があります。

私が持っています

  • ldapwhoamicn=workstation,ou=applications,dc=example,dc=comでの作業
  • ldapsearch結果の返送に失敗しましたuid=someone,ou=users,dc=example,dc=com with 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
Dimitri Kopriwa

ACLディレクティブの最後に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
by anonymous auth by * none
2
Kresimir