奇怪的ldap过滤器(成员<==> CN = usera,OU = xxx,OU = xxx,DC = abc,DC = corp,DC = xyz,DC = com)

问题描述 投票:0回答:1

在域控制器上,我看到此请求:

客户:10.168.x.y:51388起始节点:DC = abc,DC = corp,DC = xyz,DC = com过滤:(成员<==> CN = usera,OU = xxx,OU = xxx,DC = abc,DC = corp,DC = xyz,DC = com)搜索范围:子树属性选择:名称服务器控件:

访问的条目:55683返回的条目:14使用的索引:Ancestors_index:12171:N;参考页面:355546从磁盘读取的页面:0从磁盘预读的页面:0干净的页面已修改:0脏页已修改:0搜索时间(毫秒):344阻止优化的属性:会员用户:xx \ usera

此请求导致Win 2016 DC上的CPU使用率很高。

但是,当我在ldp中运行它时,它不会返回任何结果。如果我使用文件管理器(member =…..),它将返回一些结果。但是,如果我使用过滤器(成员<==>……。),它将不返回任何内容。

我以前没有看过这种过滤器。这是有效的过滤器吗?如果不是,那么如何返回14个条目,如事件日志中所示?

感谢您的任何帮助。

active-directory ldap cpu-usage domaincontroller
1个回答
1
投票

我从没看过服务器日志,但是我想知道他们是否使用了LDAP_MATCHING_RULE_IN_CHAIN对象标识符(OID),而这仅仅是它在日志中显示的方式。您实际使用的LDAP查询是这样的:

(member:1.2.840.113556.1.4.1941:=CN=usera,OU=xxx,OU=xxx,DC=abc,DC=corp,DC=xyz,DC=com)

有关于它的更多信息here,但基本上,它将搜索所有以用户为成员的组,但是是递归的。因此,如果Group A包含Group B,并且Group B包含usera,则该搜索将同时返回Group AGroup B。所以,是的,这将是CPU上比较繁重的搜索,但有时也是非常有用的搜索。

因此,请尝试尝试一下,看看是否在日志中看到相同的内容。

[从应用程序的角度来看,有时会使用这种搜索来获取权限,因为,如果我们使用上面的示例,如果Group A被授予了应用程序权限,那么即使usera被允许, '不是direct成员。

但是,还有其他方法可以执行此操作,具体取决于应用程序的编写方式。例如,用户的Windows登录令牌已经包含了其所属每个组的SID的递归列表。但是,当需要此信息时,可能没有可用的登录令牌。

© www.soinside.com 2019 - 2024. All rights reserved.