Ldap

如何在 OpenLDAP 上添加 ACL

  • September 23, 2019

我想為我的 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返回結果失敗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 

任何想法為什麼?

嘗試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

引用自:https://serverfault.com/questions/930108