0

我一直在使用 AWS EC2 在 linux 实例上配置 LDAP 服务器。到目前为止,我成功地设置了 LDAP 和 phpLDAPadmin 一起工作。

我创建了用户和组“组织单位”。我已将用户和组添加到这些“OU”中。现在,我想将 LDAP 树的特定部分授予“组”的“用户”成员的访问权限。这就是我现在无法配置的...

我的 LDAP 树如下所示:

+--> dc=www,dc=website,dc=com (3)
  ---> cn=admin
  +--> ou=groups (4)
  | ---> cn=admin_users
  | ---> cn=app1_users
  | ---> cn=app2_users
  | ---> cn=basic_users
  +--> ou=users (3)
  | ---> cn=user1
  | ---> cn=user2
  | ---> cn=user3

假设我将 user1 + user2 添加到“app1_users”的“memberUid”列表中,并将 user2 + user3 添加到“app2_users”的“memberUid”列表中。

我想:

  • cn=admin 拥有对树的完全权限/访问权限
  • app1_users 可以连接(到 phpLDAPadmin)并将新成员添加到组本身
  • app2_users 的用户也一样

连接的用户(在 phpLDAPadmin 上)应该只能看到他所属的树(和子树)。

这是我尝试过的 ACI(但它们显然不起作用):

access to attrs=shadowLastChange
    by self write
    by dn="cn=admin,dc=www,dc=website,dc=com" write
    by * read

access to attrs=userPassword
    by self write
    by dn="cn=admin,dc=www,dc=website,dc=com" write
    by anonymous auth by * none

access to dn.base=""
    by * read

access to dn.subtree="cn=app1_users,ou=groups,dc=www,dc=website,dc=com"
    by group.base="cn=app1_users,dc=www,dc=website,dc=com" write
    by dn.base="cn=admin,dc=www,dc=website,dc=com" write 
    by * none

access to dn.subtree="cn=app2_users,ou=groups,dc=www,dc=website,dc=com"
    by group.base="cn=app2_users,dc=www,dc=website,dc=com" write
    by dn.base="cn=admin,dc=www,dc=website,dc=com" write 
    by * none

access to *
    by self write
    by dn="cn=admin,dc=www,dc=website,dc=com" write
    by * read

我的配置有问题吗?

4

1 回答 1

0

如果cn=admin,...是您的 rootDn,则它拥有所有权利,不应在您自己的访问规则中解决。

对于组管理尝试:

access to dn.base="cn=app1_users,ou=groups,dc=www,dc=website,dc=com" by group.exact="cn=app1_users,dc=www,dc=website,dc=com" write

有一个隐含的最后一条规则access to * by * none,所以不需要by * none在你自己的规则中。

通常,将您的规则一一添加到列表中 - 这样更容易观察效果。

于 2017-01-19T08:34:58.277 回答