You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在UnboundID中通过SID后缀搜索LDAP条目?

解决LDAP中通过objectSid后缀查询无结果的问题

核心原因

objectSid是二进制属性,不是普通字符串类型,你用*512或*-512这种字符串通配符的方式,根本没法匹配它的二进制存储结构,所以查不到结果。

正确解决方案

方案1:直接查primaryGroupToken属性

既然你的目标是找primaryGroupToken为512的条目(一般是域管理员组),直接针对这个整数属性查询最直接:

ldapConnectionPool.search(baseDn, SearchScope.SUB, "primaryGroupToken=512")

方案2:用二进制匹配规则查objectSid后缀

如果非要通过objectSid的后缀来查,得用LDAP的二进制匹配规则。在Active Directory里,objectSid的最后4字节对应的就是primaryGroupToken,你可以这么写过滤器:

// 匹配objectSid最后4字节为0x00000200(十进制512)
ldapConnectionPool.search(baseDn, SearchScope.SUB, "(objectSid:dnSuffix:=00000200)")

不同LDAP服务器的二进制匹配语法可能有差异,AD是支持上面这种dnSuffix规则的。

补充说明

你看到的S-1-5-21-xxx-xxx-xxx-512这种是objectSid的字符串展示形式,但LDAP实际存储的是二进制数据。你之前用字符串通配符去匹配,服务器会把二进制转成字符串再尝试匹配,但这种通配符方式没法正确识别末尾的数字部分,自然查不到结果。

内容的提问来源于stack exchange,提问作者gstackoverflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:58:22