LDAP搜索通配符不起作用

时间:2013-11-13 15:10:08

标签: python ldap ldap-client

我正在尝试搜索我的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)

我很感激你的帮助!

谢谢。

1 个答案:

答案 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' )

如果过滤器类型中未包含匹配规则,则搜索将无法正常工作。

另见