Подстановочный знак поиска LDAP не работает

Я пытаюсь выполнить поиск в своем каталоге LDAP и не могу выполнить поиск с помощью фильтров подстрок, когда значение представляет собой набор атрибутов и значений.

Сценарий: в моем скрипте Python я могу искать на сервере LDAP. Поэтому я опущу код, касающийся соединения, конфигурации DN среди других, и сосредоточусь на Filter,

Фильтр1: (работает)

'(& (objectClass = person) (managedObjects = CN = SKSOBHEE-MOBL,OU= Mobile,OU= Production,OU= Windows 7,OU= IT-клиент,OU= Ресурсы,DC=emea,DC=xx,DC=yy,DC= COM) (объектный =organizationalPerson)(объектный = пользователь))

Filter2: (не работает)

'(& (Объектный = человек)(managedObjects=CN=SKSOBHEE-MOBL*)(объектный =organizationalPerson)(объектный = пользователь))'

Поиск с помощью Filter1 возвращает пользователя, но завершается неудачно с Filter2, когда я использую подстроку.

Поиск осуществляется с помощью:

l.search_s (BASE_DN, SCOPE, Filter1, Attrs)

Я был бы признателен за помощь в этом!

Спасибо.

1 ответ

Вместо подстановочного знака используйте подстроку при запросе об этих типах фильтров.

Когда 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' )

Если правило соответствия не включено для типа фильтра, поиск не будет работать, как вы думаете.

смотрите также

Другие вопросы по тегам