OpenLDAP 2.4 ACL

OpenLDAP 2.4 ACL

你能帮助我获得团体的权利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对于您的所有用例是否安全。但这是你的安全策略......

相关内容