我使用ApacheDS作为目录服务器,用于Gogs等应用程序(像GitLab这样的Git服务器)。我的想法是创建像gogs-users
这样的组,并限制登录到这些组,以便只有属于该组成员的用户才能登录。我为此创建了一个groupOfNames
和一个testuser,它被添加到gogs组。
gogs-users
的类型是groupOfNames
,它有一个属性member
,其中包含我的用户的DN(uid = testuser,ou = Users,DC = example,DC = com )。所以我能够看到,谁是这个群体的成员。
但我希望看到用户所属的所有群组。当我打开testuser时,我看不到可以告诉我的属性,他是gogs-users
的成员。我记得专有的Active Directory有一个名为memberOf
的属性,可以在像(&(objectClass=inetOrgPerson)(memberOf=CN=gogs-user,DC=example,DC=com))
这样的过滤器中查询。这正是我所需要的。
如何在免费的LDAP实现中获得此功能?我认为除了定义一个自定义属性之外别无他法 - 我必须每手掌握一个自定义属性。这不好,我想有一个自动解决方案,保持这些属性。
我已尝试过的事情
注意:我在每个方案导入后都进行了完全重置,以确保我的测试不受以前更改的影响。
答案 0 :(得分:0)
以下是查询,无论是哪种方式,但仅适用于Microsoft Active Directory:
解析all members(包括嵌套的)安全组(至少需要Windows 2003 SP2):
(memberOf:1.2.840.113556.1.4.1941:=CN=gogs-user,DC=example,DC=com)
和 所有组a User is a member of包括嵌套组
(member:1.2.840.113556.1.4.1941:=CN=UserName,CN=Users,DC=YOURDOMAIN,DC=NET))