我一直在使用 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
我的配置有问题吗?
答案1
对我来说,以下群组成员资格语法有效:
access to dn.subtree="cn=app2_users,ou=groups,dc=www,dc=website,dc=com"
by group/groupOfNames/member.exact="cn=app2_users,dc=www,dc=website,dc=com" write
by dn.base="cn=admin,dc=www,dc=website,dc=com" write
by * none
我不确定这是否能解决你的问题,因为我不知道它是如何phpLDAPadmin
工作的。
如果phpLDAPadmin
有自己的访问控制规则,您也必须修改它们。