У меня возникли проблемы с получением аутентификации SVN для работы с LDAP / Active Directory. Моя установка SVN работает нормально, но после включения LDAP в моем виртуальном хосте apache я просто не могу заставить своих пользователей проходить аутентификацию.
Я могу использовать несколько браузеров LDAP для успешного подключения к Active Directory, но просто не могу заставить это работать.
Мой файл vhost выглядит следующим образом:
<VirtualHost *:80>
ServerAdmin alex@domain.com
ServerAlias svn.domain.local
ServerName svn.domain.local
DocumentRoot /var/www/svn/
<Location /test>
DAV svn
#SVNListParentPath On
SVNPath /var/local/svn/test
AuthzSVNAccessFile /var/local/svn/svnaccess
AuthzLDAPAuthoritative off
AuthType Basic
AuthName "SVN Server"
AuthBasicProvider ldap
AuthLDAPBindDN "CN=adminuser,OU=SBSAdmin Users,OU=Users,OU=MyBusiness,DC=domain,DC=local"
AuthLDAPBindPassword "admin password"
AuthLDAPURL "ldap://192.168.1.6:389/OU=SBSUsers,OU=Users,OU=MyBusiness,DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)"
Require valid-user
</Location>
CustomLog /var/log/apache2/svn/access.log combined
ErrorLog /var/log/apache2/svn/error.log
</VirtualHost>
В моем error.log я не вижу никаких ошибок привязки (следует ли мне искать в другом месте?), Но только следующее:
[Thu Jun 21 09:51:38 2012] [error] [client 192.168.1.142] user alex: authentication failure for "/test/": Password Mismatch, referer: http://svn.domain.local/test/
В конце «AuthLDAPURL» я видел людей, использующих TLS и NONE, но ни один из них не помог в моем случае.
У меня загружены модули ldap и я проверил их, насколько мне известно, поэтому любая помощь будет очень кстати. Спасибо
Устанавливать REFERRALS off
на сервере /etc/ldap/ldap.conf
и попробуй еще раз.
И попробуйте добавить "NONE" в строку URL:
AuthLDAPURL "ldap://192.168.1.6:389/OU=SBSUsers,OU=Users,OU=MyBusiness,DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)" NONE
Попробуйте ldapsearch. Сделайте .ldaprc
в вашем домашнем каталоге с помощью этого:
HOST 192.168.1.6
BASE DC=domain,DC=local
BINDDN CN=adminuser,OU=SBSAdmin Users,OU=Users,OU=MyBusiness,DC=domain,DC=local
Используй это:
ldapsearch -D "CN=adminuser,OU=SBSAdmin Users,OU=Users,OU=MyBusiness,DC=domain,DC=local" -W sAMAccountName=user
Он запросит пароль BindDN.
Диего получает очки, поскольку это наконец привело меня к тому, что он заработал. Возможно, это был случай изменения порядка параметров на моем виртуальном хосте, но это то, что сработало для меня. Я также скопировал DN пользователя с правами администратора непосредственно из инструмента графического интерфейса LDAP, чтобы убедиться, что у меня есть правильные данные привязки:
<VirtualHost *:80>
ServerAdmin admin@domain.com
ServerAlias svn.domain.local
ServerName svn.domain.local
DocumentRoot /var/www/svn/
<Location />
DAV svn
SVNParentPath /var/local/svn/
SVNListParentPath On
AuthBasicProvider ldap
AuthType Basic
AuthzLDAPAuthoritative off
AuthName "SVN Server"
AuthLDAPURL "ldap://192.168.1.6:389/DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)" NONE
AUTHLDAPBindDN "CN=admin,OU=Admin Users,OU=Users,OU=MyBusiness,DC=domain,DC=local"
AuthLDAPBindPassword ######
require valid-user
</Location>
</VirtualHost>
Надеюсь, это поможет кому-то другому!
Возможно, он не даст прямого ответа на ваш вопрос, но думали ли вы использовать Subversion Edge? Его можно использовать бесплатно (лицензия AGPLv3).
Как вы можете видеть в этом Скриншот Настроить интеграцию LDAP довольно просто. Вы даже можете установить модуль SSPI, хотя это требует некоторой ручной работы.