Настройка сервера SVN для нескольких пользователей через http
Функция аннотации SVN довольно мощная и позволяет быстро определить, кого искать для определенной функции в конкретной строке кода. Эта функция становится немного более ограниченной (но все же полезной), если пользователи получают доступ к SVN через http. Таким образом, учетные данные не обмениваются, поэтому в аннотации не указано имя строки, измененной разработчиком, который использует http для фиксации изменения.
Вопрос в том, есть ли у разработчика способ передачи учетных данных определенного типа в SVN на сервере, чтобы однозначно идентифицировать их фиксацию? Это просто наличие идентификатора, который требуется в этой среде. Альтернативные методы, такие как svn + ssh и файловые протоколы, недоступны. Наконец, этот сервер находится во внутренней локальной сети, а не в публичной. Советы по https также приветствуются.
Сервер SVN работает в Linux с Apache2.
4 ответа
Поскольку вы используете SVN через Apache, вы можете воспользоваться встроенными в Apache методами аутентификации для управления доступом / отслеживанием изменений в вашем хранилище. Пример ниже будет работать с настройкой в стиле htaccess:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user
Вы можете настроить это в файле htaccess или в файле конфигурации VirtualHost.
В конфиге apache:
<Location /svn>
DAV svn
SVNPath /mnt/big/svn
AuthType Basic
AuthName "SVN Server"
AuthUserFile /etc/apache2/svn.pass
Require valid-user
AuthzSVNAccessFile /etc/apache2/svn_authz
и /etc/apache2/svn_authz может содержать детальное управление тем, кто может получить доступ к чему:
[groups]
ops=user1,user2
it=user2,user3
[/]
* = rw
[/ops]
* =
@ops=rw
[/ro]
* =
@ops = r
@it = r
user4 = rw
если у вас есть сервер каталогов ldap / active, вы можете использовать его вместо AuthUserFile для аутентификации Apache.
Короткий ответ: mod_authz_svn
Вы можете немного рассказать об apache + svn + mod_autz_svn и кое-что еще из моих слайдов, представленных на Международной конференции PHP '09, доступных по адресу http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf
Этот ответ предполагает, что ваши разработчики используют Windows, а у вас есть контроллер домена Active Directory.
Вы можете присоединить сервер Linux SVN к домену, следуя этой статье.
Оттуда вы настраиваете apache для аутентификации в AD с использованием Kerberos. Сначала установите mod_auth_kerb, затем подключите apache2 к Kerberos для аутентификации. Смотрите документацию Microsoft. Убедитесь, что вы внедрили SSL, если вообще беспокоитесь о безопасности между клиентом и сервером.
После того, как вы закончите, пользователь может войти в систему со своими паролями Windows, и действия будут назначены его пользователю.
К сожалению, сейчас я не могу получить конкретные сведения о конфигурации, так как я нахожусь вне офиса и не имею доступа к нашему серверу SVN.