你能帮助我获得团体的权利OpenLdap 2.4
吗?
有我的slapd.conf
# Allow LDAPv2 client connections. This is NOT the default.
allow bind_v2
#Basic rights for authentication
access to attrs=userPassword
by self write
by anonymous auth
by * none
#Rights for groups GR_READ and GR_WRITE
access to *
by self write
by group.exact="cn=GR_READ,ou=groups,ou=BGA,o=Company,c=com" read
by group.exact="cn=GR_WRITE,ou=groups,ou=BGA,o=Company,c=com" write
by * none
这个配置工作正常。我的群组中有一些有名字的人GR_READ and GR_WRITE
但我的问题是在两个 Openldap DB 之间同步 DIT。同步不起作用!我收到错误 findbase 失败! 32 在slapd.log
我有多主机配置中。
如果我将配置更改slapd.conf
为:
#Basic rights for authentication
access to attrs=userPassword
by self write
by anonymous auth
by * none
#Rights for groups GR_READ and GR_WRITE
access to *
by * read
同步有效!中没有错误slapd.log
。但我没有我的组的权限,匿名用户可以绑定 LDAP。
然后我在禁用匿名方面遇到了另一个问题。如果我改变
# Allow LDAPv2 client connections. This is NOT the default.
allow bind_v2
到
disallow bind_anon
同步不起作用!我收到错误 findbase 失败! 32 英寸slapd.log
感谢帮助。
答案1
您必须在syncrepl
语句中指定绑定信息,并最好通过另一个组显式授予对这些实体的全局读取访问权限REPLICAS
。
另外我建议像这样重构你的 ACL:
access to *
by group.exact="cn=REPLICAS,ou=groups,ou=BGA,o=Company,c=com" read
by self write
by group.exact="cn=GR_WRITE,ou=groups,ou=BGA,o=Company,c=com" write
by group.exact="cn=GR_READ,ou=groups,ou=BGA,o=Company,c=com" read
by * none
否则,作为成员的用户GR_WRITE
无法GR_READ
写入。顺序很重要:控制流在第一个匹配时停止!
此外,我会审查by self write
对于您的所有用例是否安全。但这是你的安全策略......