LDAP 获取 Active Directory 中用户的主要组名

Posted

技术标签:

【中文标题】LDAP 获取 Active Directory 中用户的主要组名【英文标题】:LDAP get primary group name of a user in Active Directory 【发布时间】:2018-06-22 11:05:00 【问题描述】:

有一种情况,我需要使用 LDAP 查询来获取特定用户所属的所有组名。 输入将是:用户专有名称 并且输出应该是:该用户所属的组列表。

到目前为止,我能够使用以下 LDAP 查询获取用户所属的所有组名,但主组除外:

查询:

dsquery * "member:LDAP_MATCHING_RULE_IN_CHAIN:=cn=user1,cn=Users,dc=example,dc=com"

输出:

"CN=group1,CN=Users,DC=example,DC=com"
"CN=mygroup,CN=Users,DC=example,DC=com"

上述查询列出了所有组“user1”的成员,但主组名“Domain Admins”除外。

想出如何使用以下 LDAP 查询来获取主要组 RID:

dsquery * "cn=user1,cn=Users,dc=example,dc=com" -scope base -attr primaryGroupID

但是从组 RID 获取组名再次不起作用,相反,如果我获得了主要组 SID,那么获取组名将很容易。但我得到的是主组 RID,我无法使用 LDAP 从中获取组名。

任何关于这方面的帮助都会很棒,我可以通过任何方式仅使用一些 LDAP 查询来获取主要组名称。

【问题讨论】:

请在此问题中添加ldap-query 标签。 【参考方案1】:

您想使用 dsget 而不是 dsquery。这是查找特定成员的所有组的方法,包括嵌套组和主组:

dsget user "cn=user1,cn=Users,dc=example,dc=com" -memberof -expand

【讨论】:

以上是关于LDAP 获取 Active Directory 中用户的主要组名的主要内容,如果未能解决你的问题,请参考以下文章

使用 LDAP 在 Active Directory 中查找用户 - 没有用户?

C# - 使用 LDAP 检索 Active Directory 的组成员

通过 LDAP 连接到 Active Directory

C# 中的 LDAP 和 Active Directory 身份验证

如何使用 Spring 安全性从 Active Directory LDAP 填充 LDAP 权限?

LDAP 和 Active Directory 结果缺少某些结果的字段