获取用户所属的所有组在LDAP中

时间:2017-05-01 15:57:55

标签: linux ldap apacheds apache-directory

我使用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实现中获得此功能?我认为除了定义一个自定义属性之外别无他法 - 我必须每手掌握一个自定义属性。这不好,我想有一个自动解决方案,保持这些属性。

我已尝试过的事情

注意:我在每个方案导入后都进行了完全重置,以确保我的测试不受以前更改的影响。

1 个答案:

答案 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))