LINUX.ORG.RU
ФорумAdmin

Адресная книга LDAP


0

1

Настраиваю адресную книгу на OpenLDAP 2.4 под Debian 6.0. Возникли проблемы с поиском записей в Outlook Express (в Thunderbird поиск проходит успешно). По логам видно что нужные записи вроде как находятся, но в Outlook Express выводится сообщение о том, что ничего не найдено. Подскажите в чем может быть проблема.

Конфиг:

include     /etc/ldap/schema/core.schema
include     /etc/ldap/schema/cosine.schema
include     /etc/ldap/schema/inetorgperson.schema
loglevel    -1
allow       bind_v2
lastmod     on 
hidden      off
pidfile     /var/run/slapd/slapd.pid
argsfile    /var/run/slapd/slapd.args
access      to *  by * read
modulepath  /usr/lib/ldap
moduleload  back_hdb
database    hdb
suffix      "dc=mail, dc=local"
rootdn      "cn=admin, dc=mail, dc=local"
rootpw      {SSHA}Gfltk0Aa8vbHPTNaiW0iYYzto4eoiTPg
directory   /var/lib/ldap
index       objectClass eq
index       cn,sn,mail  pres,eq,approx,sub

Лог:

May 25 14:00:51 mail slapd[15236]: #011SUBSTRINGS
May 25 14:00:51 mail slapd[15236]: => bdb_substring_candidates (mail)
May 25 14:00:51 mail slapd[15236]: => key_read
May 25 14:00:51 mail slapd[15236]: bdb_idl_fetch_key: [c25cf5bf]
May 25 14:00:51 mail slapd[15236]: <= bdb_index_read 1 candidates
May 25 14:00:51 mail slapd[15236]: <= bdb_substring_candidates: 1, first=3, last=3
May 25 14:00:51 mail slapd[15236]: <= bdb_filter_candidates: id=1 first=3 last=3
May 25 14:00:51 mail slapd[15236]: <= bdb_list_candidates: id=1 first=3 last=3
May 25 14:00:51 mail slapd[15236]: <= bdb_filter_candidates: id=1 first=3 last=3
May 25 14:00:51 mail slapd[15236]: => bdb_filter_candidates
May 25 14:00:51 mail slapd[15236]: #011OR
May 25 14:00:51 mail slapd[15236]: => bdb_list_candidates 0xa1
May 25 14:00:51 mail slapd[15236]: => bdb_filter_candidates
May 25 14:00:51 mail slapd[15236]: <= bdb_filter_candidates: id=0 first=0 last=0
May 25 14:00:51 mail slapd[15236]: => bdb_filter_candidates
May 25 14:00:51 mail slapd[15236]: <= bdb_filter_candidates: id=0 first=0 last=0
May 25 14:00:51 mail slapd[15236]: <= bdb_list_candidates: id=0 first=0 last=0
May 25 14:00:51 mail slapd[15236]: <= bdb_filter_candidates: id=0 first=0 last=0
May 25 14:00:51 mail slapd[15236]: <= bdb_list_candidates: id=0 first=3 last=0
May 25 14:00:51 mail slapd[15236]: <= bdb_filter_candidates: id=0 first=3 last=0
May 25 14:00:51 mail slapd[15236]: <= bdb_list_candidates: id=0 first=0 last=0
May 25 14:00:51 mail slapd[15236]: <= bdb_filter_candidates: id=0 first=0 last=0
May 25 14:00:51 mail slapd[15236]: <= bdb_list_candidates: id=0 first=2 last=0
May 25 14:00:51 mail slapd[15236]: <= bdb_filter_candidates: id=0 first=2 last=0
May 25 14:00:51 mail slapd[15236]: bdb	dep8 _search_candidates: id=0 first=2 last=0
May 25 14:00:51 mail slapd[15236]: hdb_search: no candidates
May 25 14:00:51 mail slapd[15236]: send_ldap_result: conn=1001 op=1 p=3
May 25 14:00:51 mail slapd[15236]: send_ldap_result: err=0 matched="" text=""
May 25 14:00:51 mail slapd[15236]: send_ldap_response: msgid=14 tag=101 err=0
May 25 14:00:51 mail slapd[15236]: conn=1001 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
May 25 14:00:51 mail slapd[15236]: daemon: activity on 1 descriptor
May 25 14:00:51 mail slapd[15236]: daemon: activity on:
May 25 14:00:51 mail slapd[15236]:  16r
May 25 14:00:51 mail slapd[15236]: 
May 25 14:00:51 mail slapd[15236]: daemon: read active on 16
May 25 14:00:51 mail slapd[15236]: daemon: epoll: listen=9 active_threads=0 tvp=NULL
May 25 14:00:51 mail slapd[15236]: daemon: epoll: listen=10 active_threads=0 tvp=NULL
May 25 14:00:51 mail slapd[15236]: daemon: epoll: listen=11 active_threads=0 tvp=NULL
May 25 14:00:51 mail slapd[15236]: connection_get(16)
May 25 14:00:51 mail slapd[15236]: connection_get(16): got connid=1001
May 25 14:00:51 mail slapd[15236]: connection_read(16): checking for input on id=1001
May 25 14:00:51 mail slapd[15236]: op tag 0x42, time 1306317651
May 25 14:00:51 mail slapd[15236]: ber_get_next on fd 16 failed errno=0 (Success)
May 25 14:00:51 mail slapd[15236]: connection_read(16): input error=-2 id=1001, closing.
May 25 14:00:51 mail slapd[15236]: connection_closing: readying conn=1001 sd=16 for close
May 25 14:00:51 mail slapd[15236]: daemon: activity on 1 descriptor
May 25 14:00:51 mail slapd[15236]: daemon: activity on:
May 25 14:00:51 mail slapd[15236]: 
May 25 14:00:51 mail slapd[15236]: daemon: epoll: listen=9 active_threads=0 tvp=NULL
May 25 14:00:51 mail slapd[15236]: daemon: epoll: listen=10 active_threads=0 tvp=NULL
May 25 14:00:51 mail slapd[15236]: daemon: epoll: listen=11 active_threads=0 tvp=NULL
May 25 14:00:51 mail slapd[15236]: connection_close: deferring conn=1001 sd=16
May 25 14:00:51 mail slapd[15236]: conn=1001 op=2 do_unbind
May 25 14:00:51 mail slapd[15236]: conn=1001 op=2 UNBIND
May 25 14:00:51 mail slapd[15236]: connection_resched: attempting closing conn=1001 sd=16
May 25 14:00:51 mail slapd[15236]: connection_close: conn=1001 sd=16
May 25 14:00:51 mail slapd[15236]: daemon: removing 16
May 25 14:00:51 mail slapd[15236]: conn=1001 fd=16 closed

Блин, пальцем в небо, но может быть нужно включить поддержку V2 LDAP чтоб outlook искать умел. В общем он по старому протоколу только умеет искать. ЕСЛИ МНЕ ПАМЯТЬ НЕ ИЗМЕНЯЕТ, я с этим сталкивался.

DALDON ★★★★★ ()

Пример записи LDAP, настройки outlook'а, как в нем «ищите», это все дядя ваня доджен нам рассказать или кто?

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Дядя ваня занят, поэтому придется мне.

Запись пока одна:

 ldapsearch -x -b "ou=ab,dc=mail,dc=local"
# extended LDIF
#
# LDAPv3
# base <ou=ab,dc=mail,dc=local> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# ab, mail.local
dn: ou=ab,dc=mail,dc=local
ou: ab
objectClass: organizationalUnit
objectClass: top

# \D0\90\D0\BB\D0\B5\D0\BA\D1\81\D0\B0\D0\BD\D0\B4\D1\80 \D0\9D\D0\B8\D0\BA\D
 0\BE\D0\BB\D0\B0\D0\B5\D0\B2, ab, mail.local
dn:: Y2490JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LIsb3U9YWIsZGM9dm5paXIsZ
 GM9cnU=
givenName:: 0JDQu9C10LrRgdCw0L3QtNGA
sn:: 0J3QuNC60L7Qu9Cw0LXQsg==
cn:: 0JDQu9C10LrRgdCw0L3QtNGAINCd0LjQutC+0LvQsNC10LI=
mail: user@mail.ru
objectClass: inetOrgPerson

# search result
search: 2
result: 0 Success

В Outlook Express ищу через поиск людей (в поле электронная почта набираю адрес или часть адреса и нажимаю поиск). Выводится сообщение: Поиск в службе каталогов не принес результатов. Учетная запись LDAP со следующими настройками:

Учетная запись: cn=admin,dc=mail,dc=local
Пароль: ***
Основа поиска: ou=ab,dc=mail,dc=local

laev ()
Ответ на: комментарий от zgen

Убрал

May 26 14:30:16 mail slapd[16411]: conn=1000 fd=16 ACCEPT from IP=10.10.10.11:1322 (IP=0.0.0.0:389)
May 26 14:30:16 mail slapd[16411]: conn=1000 op=0 BIND dn="cn=admin,dc=mail,dc=local" method=128
May 26 14:30:16 mail slapd[16411]: conn=1000 op=0 BIND dn="cn=admin,dc=mail,dc=local" mech=SIMPLE ssf=0
May 26 14:30:16 mail slapd[16411]: conn=1000 op=0 RESULT tag=97 err=0 text=
May 26 14:30:16 mail slapd[16411]: conn=1000 op=1 SRCH base="ou=ab,dc=mail,dc=local" scope=2 deref=3 filter="(&(&(cn=*)(mail=user*))(|(?=undefined)(?=undefined)))"
May 26 14:30:16 mail slapd[16411]: conn=1000 op=1 SRCH attr=display-name cn commonName mail otherMailbox givenName sn surname st c co organizationName o ou organizationalUnitName URL homePhone facsimileTelephoneNumber otherFacsimileTelephoneNumber OfficeFax mobile otherPager OfficePager pager info title telephoneNumber l homePostalAddress postalAddress streetAddress street department comment postalCode physicalDeliveryOfficeName initials conferenceInformation userCertificate;binary userSMIMECertificate;binary labeledURI Manager Reports IPPhone
May 26 14:30:16 mail slapd[16411]: conn=1000 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
May 26 14:30:16 mail slapd[16411]: conn=1000 op=2 UNBIND
May 26 14:30:16 mail slapd[16411]: conn=1000 fd=16 closed

laev ()
Ответ на: комментарий от laev

filter="(&(&(cn=*)(mail=user*))(|(?=undefined)(?=undefined)))"

А вот и ответ. Фильтр поломанный. Посмотрите еще раз точно в настройки search base в OE

zgen ★★★★★ ()
Ответ на: комментарий от laev

?=undefined

Это обычно значит, что в фильтре мусор и ldap сервер не смог его интерпретировать и разобрать. Кроме того, он черезмерно сложный, OE сам по себе такой фильтр не использует, возможно фильтр задали вы.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Wireshark по секрету сказал мне, что изначально фильтр выглядит так:
Filter: (&(&(cn=*)(mail=user*))(|(objectCategory=person)(objectCategory=group)))
Инетересно почему так получается.

laev ()
Ответ на: комментарий от zgen

Браво! Учетная запись видимо изначально настраивалась на AD, а потом я поменял адрес сервера и учетные данные. Не думал что учетные записи каталога такие непрозрачные.

laev ()
Ответ на: комментарий от laev

Не думал что учетные записи каталога такие непрозрачные.

У AD собственная, только частично совместимая реализация LDAP.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Это то понятно, просто в Outlook Express они неразличимы, то есть нет настроек, которые указывают AD это или LDAP (видимо определяется автоматически при первом подключении), нужно было новую учетную запись создать.

laev ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.