OpenLDAP:ACL:允许用户管理自己的组

问题描述 投票:1回答:1

我需要您对LDAP结构和相关ACL的建议。

我们的LDAP将管理10个(数量可能不同)组织,其中包含用户(总共250个用户)我希望组织允许1个用户管理他自己组织的所有用户。用户还将附加到自定义组。

什么是最好的LDAP结构?

我的第一个想法是:群组:

dn: cn=Manager,ou=Roles,ou=Groups
objectClass: posixGroup
objectClass: top
cn: Manager
gidNumber: 10100
memberUid: user1
memberUid: user3

dn: cn=Structure1,ou=Structures,ou=Groups
objectClass: posixGroup
cn: Structure1
gidNumber: 10000
description: Structure1
memberUid: user1
memberUid: user2

dn: cn=Structure2,ou=Structures,ou=Groups
objectClass: posixGroup
cn: Structure2
gidNumber: 10001
description: Structure2
memberUid: user3
memberUid: user4

应允许user1编辑用户user2但不允许user3或user4 user3编辑user1但不允许user2编辑user2

我实际上卡在ACL上,因为我没有成功使用ACL set方法来使用条目组。我想做这样的事情:

{1}to dn.children="ou=Users" by set="[cn=]+this/groups+[,ou=Structures,ou=Groups]/memberUid & user/uid" write by * read

如果比posixGroup更好,我可以使用groupOfNames

我已经读过了:

acl openldap
1个回答
2
投票

我的贡献是解决这种情况的一种选择。我知道已经有一段时间了,但我希望这有助于那里的人。 - 更改为groupofnames或organizationalrole(最后一个支持空组)都需要dn作为成员。 - 启用overlayof成员,以启用用户的memberof操作属性(这将添加用户所属组的列表,添加到用户条目中的属性)olcMemberOfGroupOC:organizationalRole olcMemberOfMemberAD:roleOccupant olcMemberOfMemberOfAD:groups(“groups “是添加到用户的操作属性”

  • 一旦执行了两个操作并且您确定用户具有组操作属性的值,根据原始问题,这里有两个场景: 第一种情况 - 允许user1写入user3,ou = users,因为它们属于cn = Manager,ou = Roles,ou = Groups 第二种情况 - 允许user1写入user2,ou = users,因为它们属于cn = Structure1,ou = Structures,ou = Groups

by set="this/groups & user/groups" write

只要用户(修改者和修饰符)具有相同的组,该acl就允许写入,acl将设置写入权限。

  • 用户=用户1,OU =用户 “user / groups”获取编辑组属性的值。 cn = Manager,或= Roles,或= Groups - cn = Structure1,或= Structures,或= Groups。
  • 此=用户3,OU =用户 “this / groups”获取修改后的对象组属性的值。 cn =经理,ou =角色,ou =组和cn = Structure2,ou =结构,ou =组
  • 此=用户2,OU =用户 “this / groups”获取修改后的对象组属性的值。 cn =经理,ou =角色,ou =群组和cn = Structure1,ou =结构,ou =群组

我希望这能解决这个问题,对于那些与openldap acl挣扎的人一样有用,正如我几天前所做的那样。

最好的祝福!!

© www.soinside.com 2019 - 2024. All rights reserved.