Как мне разрешить анонимный доступ к SVN в svnserve с помощью SASL?

Я настроил svnserve с аутентификацией SASL и шифрованием для шифрования трафика. Анонимный доступ должен быть разрешен. Мой конфигурационный файл conf/svnserve.conf (без комментариев) выглядит так:

[general]
anon-access = read
auth-access = write
realm = realm-of-repo

[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256

Связанный файл конфигурации sasl:

pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /path/to/sasldb
mech_list: DIGEST-MD5

При вводе имени пользователя и пароля все работает как положено: я могу оформить заказ и внести изменения. Однако анонимный доступ (без имени пользователя или пароля) завершается с помощью следующего сообщения об ошибке:

svn: SASL(-1): generic failure: All-whitespace username.

Как включить анонимный доступ для чтения SVN с помощью svnserve а SASL? Я не ищу решение с Apache.

2 ответа

Недавно я искал эту информацию и решил поделиться тем, что нашел. Можно разрешить анонимный доступ при использовании SASL для аутентификации, но вы должны знать, что любой анонимный доступ не будет зашифрован или защищен целостностью.

У тебя уже есть anon-access = read в svnserve.conf, как требуется.

Далее вам нужно будет установить min-encryption = 0, поскольку механизм анонимного доступа не поддерживает ни шифрование, ни защиту целостности. Пропуск этого шага сделает анонимный доступ недоступным при согласовании механизмов аутентификации.

Последний шаг - настроить механизмы аутентификации SASL в svn.conf (ваш файл конфигурации SASL для Subversion). Измените строку:

mech_list: DIGEST-MD5

в

mech_list: DIGEST-MD5 ANONYMOUS

что сделает доступным анонимный механизм. Запустить снова svnserveи вы сможете выполнить извлечение без запроса аутентификации. Если вы используете контроль доступа по каталогам, вы можете подтвердить, что пользователь $anonymous был предоставлен соответствующий доступ.

Есть несколько вещей, чтобы рассмотреть. Как уже упоминалось, весь доступ, осуществляемый анонимно, будет открытым текстом, который вам может не понадобиться, если вы работаете с конфиденциальным кодом в общедоступной сети. Кроме того, все пользователи будут выполнять доступ для чтения (извлечение и т. Д.) Через анонимный доступ, поэтому ваши журналы могут быть не так полезны для отслеживания. Кроме того, если вы разрешите анонимную запись, весь код, скорее всего, будет зафиксирован анонимно, а это означает, что вы не будете знать, какие изменения были внесены кем.

Как упоминалось в комментариях, одним из вариантов является создание фактического пользователя с именем anonymous, с простым паролем (он не сможет работать без пароля), и использование контроля доступа для каждого каталога, чтобы гарантировать, что предоставляется только доступ на чтение и только для пользователя. каталоги вы выбираете. Это позволяет вам сохранять проверку шифрования / целостности, в то же время предлагая доступ, который почти так же удобен, как настоящий анонимный доступ.

use-sasl = true принудительная аутентификация (говорит SVN запретить анонимный доступ).

Вы можете либо создать пользователя с правами только для чтения и использовать его для анонимного доступа, либо использовать http для доступа только для чтения и sasl для чтения и записи.

Другие вопросы по тегам