Я только что установил сервер 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 и настраивается с помощью графического интерфейса пользователя.