Ключевые слова:ldap, proxy, auth, freebsd, (найти похожие документы)
Date: Thu, 16 Dec 2004 08:43:02 +0500
From: alexander lunyov <alexander_lunyov@p5.f20.n5059.z2.fidonet.org.>
Newsgroups: ftn.ru.unix
Subject: slapd-ldap - вопрос к знатокам ldap
>>> Коллеги, имеется openldap-server-2.1.27, хочу использовать ldap
>>> backend, чтобы спроксировать запрос на другой LDAP-сервер и кое-кто в
>>> нём переписать. В slapd.conf пишу:
> Hадо в этом запросе переписать суффикс и перенаправить на сервер B.
> Атрибута otherMailbox на сервере B нету, поэтому его надо замапить во
> что-нибудь существующее, например uid.
так как я никогда не делал проксирование в ldap'е, то решил сделать и посмотреть :)
в общем, ситуация такая:
zeus2# /usr/local/libexec/slapd -V
@(#) $OpenLDAP: slapd 2.2.19 (Dec 16 2004 09:13:59) $
root@zeus2.startatom.ru:/usr/ports/net/openldap22-sasl-server/work/openldap-2.2.19/servers/slapd
zeus2# uname -sr
FreeBSD 5.3-RELEASE-p2
на скорую руку сделал проксик на уже работающую базу, и после нескольких
опытов вывел рабочий конфиг прокси:
database ldap
lastmod off
uri "ldap://icarus.startatom.ru/"
suffix ""
suffixmassage "dc=domain,dc=com" "dc=startatom,dc=ru"
map attribute mail *
map attribute cn *
map attribute userid uid
# обрати внимание на две звездочки, во всех мануалах стоит одна,
# но если одна, то возвращаются только отрибуты, явно указанные
# предыдущими map'ами
map attribute * *
обрати внимание, suffix - пустая строка. если вместо пустой строки
поставить dc=domain,dc=com, то почему-то прокси-сервер не коннектится к
icarus'у, и соответственно ничего не ищется. почему так - не знаю, а
разбираться мне как бы не особенно хочется :)
дальше смари чево:
zeus2# ldapsearch -x -LLL userid=lan
No such object (32)
zeus2#
а вот если явно указать базу поиска, то:
zeus2# ldapsearch -x -LLL -b "ou=usr,dc=startatom,dc=ru" userid=lan
dn: uid=lan,ou=usr,dc=domain,dc=com
mail: lan@startatom.ru
uid: lan
cn:: 0JvRg9C90LXQsiDQkNC70LXQutGB0LDQvdC00YAg0J3QuNC60L7Qu9Cw0LXQstC40Yc=
в принципе, для клиентов вроде ldapsearch базу можно определить в
/usr/local/etc/openldap/ldap.conf.
если надо дальше извращать атрибуты - включай rewriteEngine.
>>> Чего я не учёл, где копать? Посоветуйте хоть loglevel, на
>>> котором посмотреть, что происходит.
>> лучше всего на loglevel -1 :) всё увидишь :)
> Hичего там не видно, кроме filter: (?=undefined)
это лучше на обоих серверах смотреть сразу.