我正在尝试搜索我的LDAP目录,当值是一组属性和值时,我无法使用子字符串过滤器进行搜索。
方案:
在我的python脚本中,我能够搜索LDAP服务器。因此,我将省略关于连接,DN配置等的代码,并关注Filter
。
过滤器1 :(有效)
“(及(objectClass的=人)(managedObjects = CN = SKSOBHEE-的MoBL,OU =移动,OU =生产,OU =视窗 7,OU = IT 客户端,OU =资源,DC = EMEA,DC = XX,DC = YY,DC = COM)(objectClass的= organizationalPerson)(objectClass的=用户))'
过滤器2 :(失败)
'(及(objectClass的=人)(managedObjects = CN = SKSOBHEE-的MoBL *)(objectClass的= organizationalPerson)(objectClass的=用户))'
使用 Filter1 进行搜索会返回一个用户,但在使用子字符串时, Filter2 会失败。
使用以下方式进行搜索:
l.search_s(BASE_DN,SCOPE,Filter1,Attrs)
我很感激你的帮助!
谢谢。
答案 0 :(得分:0)
而不是通配符,在询问这些类型的过滤器时,请使用 substring 。
使用substring
过滤器时,必须为过滤器中使用的属性定义substring
匹配规则。对于equality
过滤器,必须有equality
匹配,substring
过滤器,substring
匹配等。
以下是具有相等性和子字符串规则的name
的属性定义示例:
attributeTypes: ( 2.5.4.41 NAME 'name' EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768}
X-ORIGIN 'RFC 4519' )
如果过滤器类型中未包含匹配规则,则搜索将无法正常工作。