我正在尝试进行一个查询,该查询输出用户被分离的所有组(和嵌套组),并通过sAMAccountName值进行查询。
例如,下面的查询工作并给出了预期的输出,但是使用了displayname。
(&(objectCategory=group)(member:1.2.840.113556.1.4.1941:=cn=Tester,ou=people,dc=Windomain,dc=local))
简单地将"cn“改为"sAMAccountName”是行不通的(我确实验证了sAMAccountName值是正确的)
使用LDAP查询可以做到这一点吗?
发布于 2022-01-27 12:12:49
有几个选项可以显示用户的完整组成员资格,包括所有嵌套组。
最简单的方法是查询用户对象的TokenGroups属性。这是一个构造的属性,它将返回当用户身份验证时将添加到用户访问令牌的组中的所有SID。构造属性的唯一条件是,搜索范围必须是返回属性的基本作用域。
LDAP_MATCHING_RULE_IN_CHAIN (1.2.840.113556.1.4.1941)匹配规则的功能受到限制,它只返回用户的DN已添加到组的成员属性的组,因此一些嵌套组将不包含在查询中。
另一种选择是使用第三方工具通过横向组成员返回嵌套组,以查看组成员资格。例如,NetTools用户的成员资格选项https://nettools.net/users-membership和NetTools AD Properties对话框,其中包括TokenGroups选项卡,该选项卡将显示小岛屿发展中国家解析的TokenGroups属性。
发布于 2022-01-27 15:53:26
您可以通过sAMAccountName
搜索用户并请求msds-memberOfTransitive
属性,该属性包含用户所属组的可分辨名称的递归列表。
还有msds-tokenGroupNames
属性,它包含小岛屿发展中国家出现在tokenGroups
属性中的所有组的可分辨名称。
区别在于tokenGroups
只包括安全组,而memberOf
也包括通讯组。只能使用安全组来分配权限。
这两个属性都是构造的属性,因此必须将其具体地放在属性列表中才能在搜索中返回。
发布于 2022-01-27 20:28:02
对不起,无法添加注释
要小心msd成员传递属性,它有一些奇怪的逻辑,它不遵循正常的值范围规则,并且可能返回不完整的结果,请参阅https://blog.joeware.net/2021/04/19/6068/。
https://stackoverflow.com/questions/70877258
复制相似问题