Я пытаюсь установить WebSVN поверх VisualSVN. VisualSVN настроен для использования аутентификации Windows, при этом пользователи из доменов CLIENT и DEV получают доступ к разным областям сайта. Пользователям в CLIENT отказано в корневом доступе (через интерфейс SVN), и им предоставляется доступ к определенным путям в репозитории. Пользователям DEV предоставляется доступ ко всему. Это отлично работает при доступе к VisualSVN через его веб-интерфейс или через браузер репозитория TortoiseSVN.
Я могу запустить WebSVN, и он проверяет подлинность действительных учетных данных пользователя домена (из любого из доменов) перед предоставлением доступа. Однако после предоставления действительных учетных данных он предоставляет доступ ко всему и всем пользователям.
Я пробовал разные варианты настройки в VisualSVN/conf/httpd-custom.conf
файл, но ни один из них не помогает решить эту проблему. В идеале WebSVN предоставит такой же доступ, что и VisualSVN. Однако я согласен полностью заблокировать всем пользователям домена КЛИЕНТА доступ к WebSVN.
Текущее состояние файла conf:
LoadModule php5_module "c:/php/php5apache2_2.dll"
LoadModule authz_user_module bin/mod_authz_user.so
LoadModule sspi_auth_module bin/mod_auth_sspi.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
PHPIniDir "C:/php"
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
<Location /websvn/>
SVNListParentPath on
SVNParentPath "D:/Repositories/"
AuthName "SVN Server"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain DEV
require valid-user
</Location>
(Эта настройка направлена на разрешение доступа только членам домена DEV, неявно исключая домен КЛИЕНТА - однако решения для любого подхода будут приветствоваться и приняты).
Вот как я в итоге получил ограничение пользователей теми, кто находится в определенном домене:
<Location /websvn/>
AuthName "SVN Server"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain DEV
SSPIOfferBasic On
SSPIOmitDomain On
require group DEV\Group1
require group DEV\Group2
</Location>
Ключевым моментом было использование require group
строка, чтобы указать, какие конкретные группы в домене должны иметь доступ. В require valid-user
В моей предыдущей попытке строка просто проверяла, что это действительный пользователь, но не проверяла домен пользователя.