active-directory - 过滤掉内置 AD 安全组的正确方法

标签 active-directory ldap

我有一个 LDAP 搜索查询,我使用以下过滤器

"(&(objectClass=user)(objectCategory=person))"

并针对 AD 运行以获取用户帐户。返回的属性之一(“memberOf”)包含一个“;”用户所属组的分隔字符串。

CN=MyGroup,OU=MyMainOU,DC=masterdom,DC=local; CN=管理员、CN=内置、DC=masterdom、DC=本地

我想过滤掉内置安全组,在处理列表时我可以依赖包含字符串“cn=builtin”的“内置”组吗?或者它可以随本地等而改变。如果是这样,正确的方法是什么?

最佳答案

如果您想使用 memberOf 属性,您可以使用完整的容器名称将其包含在过滤器中:

(&(objectClass=user)(objectCategory=person)(memberof=CN=Builtin,DC=masterdom,DC=local))

但要记住的是,memberOf 属性只会显示用户所源自的域组件 (DC) 的 native 组 - 我的意思是,如果用户 ADevelopersManagement 组的一部分,但当前域中不存在 Developers 组如果您正在查询的组件,则 memberOf 属性在查询时将仅显示用户的 Management 组。

此外,memberOf 属性是计算反向链接属性构造属性。它由 Active Directory 维护和计算,因此当您移动用户和组时,该值将自动为用户更改。

但是,根据您的帖子判断,如果您只是迭代用户列表并检查 memberOf 属性是否存在 CN=Builtin (例如.Contains 检查),那么是的,您可以依赖该字符串,因为它是您正在查询的 DC 的一部分。

关于active-directory - 过滤掉内置 AD 安全组的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18720465/

相关文章:

ldap - 如何绕过必须在 liferay 中使用电子邮件地址名字和姓氏来导入身份验证用户的必要性

active-directory - 如何在 LDAP 上运行范围查询

c# - 在 C# .NET 中连接到 Active Directory 服务器时出现问题

active-directory - 在 OpenLDAP 中创建 Active Directory 模式

c# - 如何使用 C# 按用户名搜索 Active Directory?

active-directory - 如何过滤包含特定用户的组的 LDAP 查询?

java - LDAP 请求中返回大量对象的 SizeLimitExceededException

java - 通过java检查Ldap服务器中的用户名和密码

oracle - 如何为 SQL*Plus 名称查找强制使用 LDAPS

linux - 在 CentOS 上安装 FreeIPA 时出错