Назад | Перейти на главную страницу

Сбой авторизации svn через sasl + ldap после обновления Ubuntu 10.04 -> 12.04

У меня есть рабочее решение 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)>