|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : alexander lunyov 2:5059/20.5 16 Dec 2004 09:43:02 To : Victor Sudakov Subject : slapd-ldap - вопрос к знатокам ldap -------------------------------------------------------------------------------- ** Victor Sudakov => alexander lunyov >>> Коллеги, имеется openldap-server-2.1.27, хочу использовать ldap >>> backend, чтобы спроксировать запрос на другой LDAP-сервер и кое-кто в >>> нём переписать. В slapd.conf пишу: >> >>> database ldap >>> lastmod off >>> uri "ldap://mail/" >>> suffix XXXXXXXXXXXX >>> suffixmassage XXXXXXXXXXXX >>> map attribute otherMailbox mail > Давай для ясности лучше так переделаю: > map attribute mail * > map attribute cn * > map attribute otherMailbox uid > map attribute * >> >> otherMailbox - локальное имя атрибута? > Запрос приходит от клиента на сабжевый сервер A такой: > '(&(|(mail=*sudakov*)(otherMailbox=*sudakov*)))' > 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/openlda p-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) это лучше на обоих серверах смотреть сразу. * bye --- * Origin: no sex until marriage! (c) Front242 (2:5059/20.5) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/276541c137a6.html, оценка из 5, голосов 10
|