У меня есть рабочее решение svnserve на Ubuntu 10.04 для авторизации пользователей svn через SASL в Active Directory (LDAP, а не LDAPDB). Файлы конфигурации находятся внизу.
После обновления сервера до версии 12.04 это больше не работает. Я могу авторизовать пользователя через SASL в LDAP с помощью
testsaslauthd -u ldap_username -p his_password
=> 0: OK "Success."
Но когда я пытаюсь выполнить «svn update» в папке на том же сервере, он трижды запрашивает у меня учетные данные и заканчивается на
svn: Authentication error from server: SASL(-4): no mechanism available:
Не знаю, как отследить связь между svn и sasl.
файл /usr/lib/sasl2/svn.conf
pwcheck_method: saslauthd
auxprop_plugin: ldap
mech_list: PLAIN
файл /usr/lib/sasl2/subversion.conf -> символическая ссылка на /usr/lib/sasl2/svn.conf
файл /opt/svn/repos/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
#password-db = passwd
authz-db = authz
realm = smartsvn
[sasl]
use-sasl = true
min-encryption = 0
max-encryption = 256
Есть идеи, как исправить или отследить проблему?
Были те же проблемы, что и выше, только на debian squeeze после dist-upgrade. После нескольких часов конфигурирования, перезапуска и переустановки безумия я попробовал следующий "svn.conf":
pwcheck_method: saslauthd
#auxprop_plugin: ldap
mech_list: plain login cram-md5 digest-md5
ИМО, "mech_list: plain" должно быть достаточно. другие мехи - это надлева от предыдущих испытаний.
Вот мой /etc/saslauthd.conf
ldap_servers: ldap://xxx.xxx.xxx.xxx
ldap_use_sasl:no
ldap_search_base: DC=domain,DC=tdl
ldap_bind_dn: xxxx@domain.tdl
ldap_bind_pw: magic_word:)
ldap_mech: PLAIN
ldap_auth_method: bind
ldap_filter: (sAMAccountName=%U)
log_level: 7
И вот мой / etc / default / saslauthd
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="ldap"
MECH_OPTIONS=""
THREADS=5
Обновление Dez 14:
Сегодня у меня снова возникла та же проблема после обновления svnserve (r1615264):
Мне пришлось добавить в svn.conf следующее:
ldapdb_uri: ldap://myldadphost.tld
Не спрашивайте меня, почему, я просто попробовал, потому что три или четыре года назад параметр уже был (с другими параметрами ldap) в svn.conf ...
(1) В /etc/sasl2/svn.conf вы можете установить уровень журнала для saslauthd, например:
log_level: 7
В sasl.h я нашел:
#define SASL_LOG_NONE 0 /* don't log anything */
#define SASL_LOG_ERR 1 /* log unusual errors (default) */
#define SASL_LOG_FAIL 2 /* log all authentication failures */
#define SASL_LOG_WARN 3 /* log non-fatal warnings */
#define SASL_LOG_NOTE 4 /* more verbose than LOG_WARN */
#define SASL_LOG_DEBUG 5 /* more verbose than LOG_NOTE */
#define SASL_LOG_TRACE 6 /* traces of internal protocols */
#define SASL_LOG_PASS 7 /* traces of internal protocols, including passwords */
Кажется, он записывается в /var/log/auth.log.
У меня почти такая же проблема (переход с Ubuntu 11.04 на 12.04), и я попадаю в auth.log:
svnserve: could not find auxprop plugin, was searching for 'ldap'
Интересно, что в журнале написано «svnserve», а не saslauthd. Что привело меня к ...
(2) Вы можете попробовать
ldd /usr/bin/svnserve
Для меня рабочий сервер (Ubuntu 11.04) показывает:
libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2
но отказавший сервер (12.04) - нет.
Попробуйте изменить конфигурацию в конфигурационном файле /usr/lib/sasl2/svn.conf (конфигурация sasl SVN):
auxprop_plugin: ldapdb
mech_list: PLAIN
ldapdb_mech: PLAIN
saslauthd_path: /var/run/saslauthd/mux
ldapdb_uri: <address of your ldap server (ldap://hostname)>