java ldap 分页_具有从属引用的 LDAP 分页查询未正确处理

具有从属引用的 LDAP 分页查询未正确处理

09/14/2020

本文内容

本文提供了一些方法来避免使用从属引用的 LDAP 分页查询未正确处理的问题。

原始产品版本:   Windows 8

原始 KB 编号:   2561166

症状

你有一个应用程序,使用 ldap_search_ext 或 ldap_search_ext_s,通过分页搜索来搜索 Active Directory,并且它设置为追踪引荐。 当从域 NC 的根目录搜索时,分页搜索在首页之后提前结束。

在应用程序中,它收到的分页 Cookie 为空,因此应用程序将结束查询。 在网络跟踪中,您可以验证分页查询是否返回非空 Cookie 以及一个或多个引用。 大多数查询在结果集引用时将看不到任何内容,因为通常在域 NC 中搜索的对象不在从属 NC 中,除非它们也是域 NC。

应用程序也可能在首页后收到"操作错误"。

域控制器返回以下命名上下文的从属引用:

搜索林根时:配置 NC (后跟架构 NC 引用)

搜索林根目录时:ForestDnsZones NC

DomainDnsZones NC

所有子域。 并递归所有子域下整个域树。

原因

分页查询期间引用引用时存在多个问题:

当对位于同一台服务器上的命名上下文进行 (请参阅 1.,也可能是 2。 和 3。 上述) ,同一 LDAP 会话上发生查询,擦除在客户端 LDAP 运行时的主查询中返回的分页 Cookie。

当所引用的最后一个引用也超过页面大小时,从上一个 NC 接收到的引荐 Cookie 将用于继续主搜索。 这会导致 LDAP 搜索失败,出现"操作错误",因为 Cookie 不符合服务器有关搜索的索引和索引位置的知识。

当使用不带 SSL 的简单绑定完成主要搜索时,引用的查询将失败并出现"操作错误",因为 LDAP 客户端设计为在引用引用时不发送纯文本凭据。

解决方案

此问题目前尚未解决。

可以在应用程序中使用以下方法避免这些问题:

使用避免服务器返回从属引用的基本 DN,例如,搜索域根对象下的 OU。

搜索全局编录,而不是林根域 NC。 你需要确保所需的所有属性都存在于 GC 中,并且确实希望整个林而不是之前搜索的域树。

如果你不希望自动追踪引荐:由于默认情况下会追踪引荐,请使用带标志ldap_set_option LDAP_OPT_REFERRALS关闭引荐查询。 完成主查询后,始终可以手动追踪引用。

在搜索时LDAP_SERVER_DOMAIN_SCOPE_OID,它将在搜索域根时关闭延续引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值