Подфильтры в запросе LDAP - PullRequest
1 голос
/ 29 марта 2011

как будет запрос, если я хочу, чтобы только пользователи из OU имели имя, начинающееся с "sales".

например:

(&(objectCategory=person))

Ответы [ 3 ]

2 голосов
/ 29 марта 2011

Вообще говоря, нет никаких способов запрашивать пользователей по имени их OU, потому что a) пользователи обычно не содержат каких-либо знаний о OU, к которой они принадлежат (в отличие, например, от членства в группах), и, следовательно, ничего нельзя добавить в фильтр b) LDAP фильтры довольно ограничены, и нет такого понятия, как подфильтр или подзапрос.

Частичным решением проблемы может быть установка параметра BaseDN ldap_search на путь OU.

Более сложные запросы обычно обрабатываются с помощью некоторого вида клиентского кода.

0 голосов
/ 13 августа 2011

Объекты в базе данных каталога связывают с ними атрибут objectClass, значения которого определяют, какие атрибуты должны или могут быть включены в объект.organizationalPerson и его потомок inetOrgPerson допускают включение атрибута ou в объект.Если вашему приложению требуется найти объекты, которые имеют атрибут ou с определенным значением, включите ou в фильтр равенства :

(ou=organization name)

или ограничьте число объектов, возвращаемых изДля поиска в запросах с атрибутом ou точного регистра используйте расширяемый фильтр сопоставления (серверы профессионального качества, совместимые с LDAP, поддерживают расширяемый фильтр сопоставления):

(ou:caseExactMatch:=Organization Name)

или чтобы сделать аналогичное определение, если объект подчинен ou, то есть DN записи является чем-то вроде uid=user.0,ou=people,dc=example,dc=com, используйте расширяемый фильтр соответствия, который включает DN:

(ou:dn:caseExactMatch:=people)

или чтобы определить, какие объекты имеют атрибут ou, используйте «фильтр присутствия»:

(ou=*)

Все вышеперечисленные методы, скорее всего, требуют индексирования атрибута ou.См. «Использование ldapsearch» для получения более общей информации о поисковых запросах и ответах.

0 голосов
/ 30 марта 2011

Похоже, вы работаете в Active Directory, и я не уверен, что это работает.Но в чистой реализации LDAP существует функция под названием ExtensibleMatch , которая, кажется, правильно объяснена в этой вики-статье .Вы также найдете здесь несколько полезных примеров здесь .

Кажется, Active Directory не поддерживает этот .

JP

...