我想在我的 OpenLDAP 上为子组织添加 ACL。
这是他们的 ACL 文档: https://www.openldap.org/doc/admin24/access-control.html
我正在使用ldapmodify
它来更新正在运行的 OpenLDAP 实例上的 ldap db。
这是目录我已经导入的文件:
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
能够阅读 1-2 岁以下儿童的书籍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