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

Проверка пользователя SVN с помощью входа в домен Windows

Я только что установил сервер SVN (на машине с Windows XP) для своей лаборатории в университете. Прямо сейчас любой может анонимно получить доступ к репозиторию и внести в него изменения.

Я хочу разрешить доступ к репозиторию только определенным пользователям в нашем домене AD. Если возможно, я также хочу, чтобы пароли совпадали с паролем для домена.

Возможно ли это сделать?

Решено

Я установил mod_auth_sspi и настроил свой httpd.conf следующим образом:

DAV svn SVNPath "R: \ SVN"

AuthName "SVN Server"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain AD
SSPIOfferBasic On
Require valid-user

AuthzSVNAccessFile "r:/svn/svnaccess.conf"

и в svnaccess.conf:

[groups]
dev = AD\user1, user1, AD\user2, user2

[/]
@dev = rw

Если вы используете Apache, да. Убедитесь, что установлен mod_auth_sspi. Затем вы настраиваете каталог с соответствующими настройками:

<Directory />
    Options FollowSymLinks
    AllowOverride None

    AuthType SSPI
    AuthName "YOURDOMAIN"
    SSPIAuth On
    SSPIAuthoritative Off
    SSPIDomain dc.yourdomain.com
    SSPIOmitDomain Off
    SSPIOfferBasic On
    SSPIUsernameCase lower
    Require group "YOURDOMAIN\AuthorizedGroup" 
</Directory>

В вашем файле svnpasswd вы просто указываете пользователей с полными доменными именами

developers = mydomain\myuser
[/]
@developers = rw

Надеюсь, это немного поможет.

Вы не указали явно, как обслуживается Subversion, но на основе ваших тегов я предполагаю Apache. Использовать Apache 2.2 для обслуживания Subversion с аутентификацией через AD довольно просто.

В вашей конфигурации Apache вам необходимо добавить соответствующие параметры Auth в блок местоположения для репозитория.

Например (ограниченный доступ для чтения и записи):

<Location /repo>
    DAV svn
    SVNPath /var/svn/repo
    AuthName "Subversion WebDAV"
    AuthType Basic
    AuthLDAPURL "<ldap_url>"
    AuthLDAPBindDN "<ldap_bind_dn>"
    AuthLDAPBindPassword "<password>"
    Require valid-user
</Location>

Возможно, вам потребуется поговорить с администратором AD, чтобы настроить учетную запись службы, которую Apache будет использовать для подключения к AD (если ваш AD требует привязки перед выполнением поиска).

Если вы хотите разрешить анонимное чтение, при этом требуя от пользователей аутентификации для записи, замените Require valid-user строку выше со следующим:

<LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
</LimitExcept>

Два других варианта размещения репозиториев Subversion в Windows - это SVNIsapi и Visual SVN.

SVNIsapi это плагин IIS для IIS 6.0 и выше. Безопасность AD обеспечивается IIS.

Визуальный SVN связывает apache, svn и инструмент с графическим интерфейсом для администрирования репозиториев. Безопасность AD обеспечивается модулем apache и настраивается с помощью графического интерфейса пользователя.