当前位置: 首页 > 知识库问答 >
问题:

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

怀展
2023-03-14

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

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

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
{1}to dn.children="ou=Users" by set="[cn=]+this/groups+[,ou=Structures,ou=Groups]/memberUid & user/uid" write by * read

我已经读过:

  • http://www.openldap.org/doc/admin24/access-control.html
  • http://www.openldap.org/faq/data/cache/1133.html
  • http://www.openldap.org/faq/data/cache/1134.html

共有1个答案

常嘉平
2023-03-14

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

  • 一旦执行了这两个操作,并且您确定用户在groups操作属性上有值,根据最初的问题,这里有两个场景:
    • 第一个场景-user1允许写入user3,ou=users,因为它们属于cn=manager,ou=roles,ou=groups
    • 第二个场景-user1允许写入user2,ou=users,因为它们属于cn=structure1,ou=structure1,ou=groups

    此acl允许写,每当两个用户(修改者和修改者)具有相同的组时,acl将设置写权限。

    >

  • user=user1,ou=users

    “user/groups”获取修饰符groups属性的值。cn=manager,ou=roles,ou=groups-cn=structure1,ou=structures,ou=groups。

    this=user3,ou=users

    最好的问候!!

 类似资料:
  • 我正在与firebase安全规则作斗争,我可以让它的一部分工作,但当我试图将它连接在一起时,我有问题。 我希望我的规则做到以下几点: > 如果经过身份验证,允许读取所有文档 这里是什么我有,不包括用户能够创建他们自己的用户帐户。它只允许管理员写任何文档。 下面是我试图添加的内容,以允许用户创建他们的用户文档。它似乎没有级联到下一个规则,它尝试路径中的getRole,发现用户不是管理员,所以失败了。

  • 我有一些rest api,如下所示: 我必须如何保护他们?每个用户只能看到她/他的数据,但管理员可以看到所有数据。 怎样 在会话中的每个方法用户ID等于传递给api的user_id参数之前,我是否检查过?有更好的方法吗? 附言:我使用JWT的Spring安全。

  • 我花了最后一天的时间试图做一些关于消防规则的事情,但我似乎找不到任何地方的解决方案。我对这个火炉规则很陌生,所以请耐心:) 我目前有以下规则:

  • 我正在尝试建立一个只有我可以编写的Firebase数据库。所以没有用户有权编写任何东西。但每个人都可以阅读它。 然而,我无法为它制定规则。我使用电子邮件/密码登录创建了一个管理员用户,我知道它的UID。假设我的UID是: 我尝试了这两种方法,但它们不允许我写入数据库。 . 那么,如何只允许一个具有特定UID的用户向数据库写入任何内容呢?

  • 我有一个设计问题,我不知道如何解决。 假设我的主要应用程序由6个模块组成: 客户端 网关 auth-service 论坛 画廊 消息 欢迎任何帮助! 附注:我阅读了微服务身份验证策略和ZUUL-API网关身份验证,但两者似乎都不适用于我的情况。

  • 问题内容: 我希望有 多个 MySQL用户能够发出类似的命令 但是我也希望这些用户中的每一个都只能看到和访问他们 自己的 数据库。 我所能找到的就是如何由DBA创建数据库并将该数据库的特权授予特定用户: 或将所有数据库的特权授予用户: 但是我也不想要,因为它需要扩展和安全。 问题答案: 您可以使用 授予用户名称以开头的所有数据库的用户特权。 这允许测试用户创建限制于以testuser_开头的名称的