Инструменты пользователя

Инструменты сайта


subversion_active_directory

Это старая версия документа!


Интеграция Subversion с MS Active Directory

Введение

В данном howto показан один из вариантов интеграции Subversion и AD. К сожалению, сам по себе svnserve не поддерживает LDAP, поэтому придется использовать на стороне сервера Apache с модулем dav_svn, т.к. Apache поддерживает LDAP. Подробно описывать установку, настройку и вообще общие принципы Subversion не буду, будем считать, что на текущий момент он установлен. Установка проводится на примере GNU/Debian 7.0 и Windows Server 2012.

Установка

Ставим Apache и модуль для работы в качестве svn-сервера. <konsole root> # apt-get install apache2 libapache2-svn </konsole>

Настройка

Разрешаем все необходимые модули Apache. <konsole root> # a2enmod dav # a2enmod dav_svn # a2enmod ldap # a2enmod authnz_ldap # a2enmod authz_svn </konsole>

Редактируем файл /etc/apache2/mods-enabled/dav_svn.conf

#  Указываем путь, по которому Apache будет обрабатывать svn-запросы. Можно указать /svn или любой другой. Мне удобнее обрабатывать запросы в корне.
<Location />

  # Включаем обработку svn-запросов по этому адресу
  DAV svn
  
  # Указываем путь к каталогу с репозиториями. Если же у нас один репозиторий, то нужно использовать опцию SVNPath и указать в ней путь к репозиторию.
  SVNParentPath /srv/svn/bases
  
  # Разрешить листинг репозиториев
  SVNListParentPath On
  
  # Путь к файлу с описанием прав доступа к репозиториям и подпапкам, если надо. Также в этом файле можно определить гуппы пользователей. В самом Apache и его модуле LDAP 
  # к сожалению нет возможности управлять группами, поэтому есть два варианта: либо формировать группы из доменных пользователей вручную, либо использовать спец. скрипты, 
  # вроде этого(см. ссылку в конце статьи). 
  AuthzSVNAccessFile /etc/apache2/svnaccessfile
  
  # Сделать авторизацию в каталоге LDAP главной
  AuthzLDAPAuthoritative on
  
  # Тип аунтификации
  AuthType Basic
  
  # Указываем, что данные по логинам и паролям следует брать в LDAP
  AuthBasicProvider ldap
  
  # Информационное сообщение, которое будет выводиться в окне аунтификации
  AuthName "Yohoho!"
  
  # Пользователь в AD с правами на чтение каталога
  AuthLDAPBindDN "reader@domain.local"
  
  # Его пароль
  AuthLDAPBindPassword "passw0rd"
  
  # Строка подключения к AD. В данном случае поиск пользовтелей выполняется не во всем домене, а только в контейнере AllUsers, также отфильтрованы заблокированные пользователи
  AuthLDAPURL "ldap://domain.local:389/OU=AllUsers,DC=domain,DC=local?sAMAccountName?sub?(&(objectClass=user)( !(userAccountControl:1.2.840.113556.1.4.803:=2)))" NONE
  
  # Позволяем получать доступ только авторизовавшимся пользователям. Также, если есть такая необходимость, можно разрешить авторизовываться в svn только пользователям, входящим
  # в определенную группу, например SvnGroup, тогда вместо этой строки следует прописать это:
  # Require ldap-group cn=SvnGroup,ou=AllGroups,dc=domain,dc=local
  Require valid-user
  
</Location>

Ссылки

subversion_active_directory.1368451438.txt.gz · Последнее изменение: 2022/03/25 17:04 (внешнее изменение)