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

Настройка сервера SVN для нескольких пользователей через http

Функция аннотации SVN является довольно мощной и позволяет быстро определить, кого отслеживать для конкретной функции в определенной строке кода. Эта функция становится немного более ограниченной (но все же полезной), если пользователи получают доступ к SVN через http. Таким образом не производится обмен учетными данными, поэтому в аннотации не отображается имя строки, измененной разработчиком, который использует http для фиксации изменения.

Вопрос в том, есть ли у разработчика способ передать какие-либо учетные данные в SVN на сервере, чтобы однозначно идентифицировать их фиксацию? В этой среде требуется просто наличие идентификатора. Альтернативные методы, такие как svn + ssh и файловые протоколы, недоступны. Наконец, этот сервер находится во внутренней локальной сети, а не в открытом доступе. Также приветствуются советы по https.

Сервер SVN работает под управлением Linux с Apache2.

Поскольку вы запускаете 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 directory server, вы можете использовать его вместо AuthUserFile для аутентификации apache.

Этот ответ предполагает, что ваши разработчики используют Windows и у вас есть контроллер домена Active Directory.

Вы можете присоединить Linux svn-сервер к домену, выполнив следующие действия. статья.

Оттуда вы настраиваете apache для аутентификации в AD с помощью Kerberos. Первая установка mod_auth_kerb, затем подключите apache2 к Kerberos для аутентификации. См. Microsoft документация. Убедитесь, что вы внедрили SSL, если вас вообще беспокоит безопасность между клиентом и сервером.

После того, как вы закончите, пользователь может войти в систему со своими паролями Windows, и действия будут назначены его пользователю.

К сожалению, я не могу предоставить вам конкретные детали конфигурации прямо сейчас, так как меня нет в офисе и нет доступа к нашему svn-серверу.

Короткий ответ: mod_authz_svn

Вы можете немного узнать об apache + svn + mod_autz_svn и кое-что еще на моих слайдах, представленных на Международной конференции PHP '09, доступных по адресу http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf