我在客户端应用程序针对我的 Ubuntu 22.04 openldap 服务器执行 ldap 搜索时遇到了问题。正如您在 wireshark 跟踪中看到的那样,客户端为搜索响应指定了 sizelimit=1,但它是对象的通配符查询。可以预见的是,任何超过一个用户帐户都会导致搜索失败,并出现 sizelimit 超出错误。
当不使用搜索大小限制(ldapsearch -z 1 ...)时,相同的搜索可以正常工作。
LDAPMessage searchRequest(31) "ou=users,dc=xxxxxxxxxx,dc=com" singleLevel
messageID: 31
protocolOp: searchRequest (3)
searchRequest
baseObject: ou=users,dc=xxxxxxxxxx,dc=com
scope: singleLevel (1)
derefAliases: neverDerefAliases (0)
==> sizeLimit: 1
timeLimit: 0
typesOnly: False
Filter: (&(objectClass=posixAccount)(homeDirectory=*))
filter: and (0)
and: (&(objectClass=posixAccount)(homeDirectory=*))
and: 2 items
Filter: (objectClass=posixAccount)
and item: equalityMatch (3)
equalityMatch
attributeDesc: objectClass
assertionValue: posixAccount
Filter: (homeDirectory=*)
and item: present (7)
present: homeDirectory
attributes: 1 item
AttributeDescription: homeDirectory
问题:我知道我可以在 openldap 中指定服务器端大小搜索限制,但是有没有办法明确忽略搜索请求中的客户端大小限制(如果指定)并返回所有结果?我无法控制客户端应用程序以删除搜索请求的大小限制。