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

Аутентификация SVN с LDAP и Active Directory

У меня возникли проблемы с получением аутентификации 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, хотя это требует некоторой ручной работы.