我一直在使用 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
有自己的存取控制規則,您也必須修改它們。