Синтаксис / семантика LDAP: фильтр против базового DN? - PullRequest
3 голосов
/ 05 ноября 2010

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

Я использую Apache Directory Studio для своих поисков, и меня смущает вопрос, когда мне следует использовать фильтр или когда мне нужно разбить свой фильтр на две части, используя одну часть в качестве фильтра, а другую - в качестве базы поиска ,

Вот пример, где я пытаюсь отфильтровать группу.

Filter: CN=JohnTestGroup,OU=TECH,DC=lab,DC=ing
Base:   DC=lab,DC=ing

Это дало ноль результатов. Я понял, что, возможно, я избыточен, так как часть базы находится в фильтре, поэтому я избавился от этой части в фильтре.

Filter: CN=JohnTestGroup,OU=TECH
Base:   DC=lab,DC=ing

Это все еще ничего не дало. Итак, я попробовал это:

Filter: CN=JohnTestGroup
Base:   OU=TECH,DC=lab,DC=ing

Я переместил параметр OU в Base. Это сработало, но я не понимаю, почему первая или вторая попытки не сработали. Кто-то хочет поделиться со мной знаниями?

Вероятно, это вопрос синтаксиса / семантики, поэтому, если кто-нибудь сможет указать мне на ресурс, я буду более чем готов прочитать больше об этом.

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

Читайте о областях видимости там: http://www.idevelopment.info/data/LDAP/LDAP_Resources/SEARCH_Setting_the_SCOPE_Parameter.shtml

Если вы установите для области поиска значение SUBTREE (2 и 3), возможные 1 варианты начнут работать, но поиск по поддереву будет работать медленнее

1 голос
/ 05 ноября 2010

Я думаю, вы неправильно понимаете, как работает фильтр. Это должны быть пары ключ = значение.

Итак (objectClass = iNetOrgPerson) в качестве примера.

Если вы хотите, чтобы фильтр обнаружил DN, вы выбираете характеристику идентификации, например CN, и фильтр (CN = JohnTestGroup) или, возможно, (mail=John@mail.net).

База сообщает серверу LDAP, с чего начать поиск, как отмечает seriyPS в своем ответе, SCOPE - следующий вопрос. Насколько глубоким должен быть поиск на сервере, поскольку это добавляет накладных расходов и проблем с производительностью. Поддерево упрощенно концептуально. Просто продолжай смотреть отсюда, пока не выбежишь из дерева, чтобы просмотреть.

Вот почему ваш последний работает.

Теперь, если вы хотите найти конкретный объект и знаете его DN, вы выполняете запрос области ENTRY для базы определенного DN.

...