После некоторого исследования, я думаю, я разобрался, как это сделать, используя mod_sspi и серию директив конфигурации Apache Location.
<Location /svn>
DAV svn
SVNParentPath "D:/SvnRepos"
SVNListParentPath On
AuthType SSPI
AuthName "SVN Server"
SSPIAuth On
SSPIAuthoritative On
SSPIDomain MYDOMAIN
SSPIOfferBasic On
Require group MYDOMAIN\PRODUCT1_DEVS MYDOMAIN\PRODUCT2_DEVS
</Location>
<Location /svn/Repo/Product1>
AuthType SSPI
AuthName "SVN Product1"
SSPIAuth On
SSPIAuthoritative On
SSPIDomain MYDOMAIN
SSPIOfferBasic On
Require group MYDOMAIN\PRODUCT1_DEVS
</Location>
<Location /svn/Repo/Product2>
AuthType SSPI
AuthName "SVN Product2"
SSPIAuth On
SSPIAuthoritative On
SSPIDomain MYDOMAIN
SSPIOfferBasic On
Require group MYDOMAIN\PRODUCT2_DEVS
</Location>
Недостатками этого подхода является то, что конфигурация мудрая, она немного многословна иэто не работает для WebSVN.Первый из них мне не безразличен, а второй, который я мог бы посмотреть на исправление позже.
Хотя вопрос для всех вас, экспертов Apache и SVN.Является ли эта конфигурация безопасной и надежной?Мне кажется, что он работает нормально, но я не видел, чтобы этот подход упоминался где-либо еще, поэтому я немного нервничаю по поводу его развертывания без какой-либо обратной связи с экспертами, и у нас нет опытных парней из Apache.
=== РЕДАКТИРОВАТЬ ===
В конечном итоге я решил создать отдельный репозиторий для каждого проекта, для которого требовались определенные права доступа, используя конфигурацию, подобную этой.
# Publishes repository 1 at url http://localhost/svn/Repo1 used mostly by team 1.
<Location /svn/Repo1>
# DAV config.
DAV svn
# Config to publish single repository.
SVNPath "D:/SvnRepos/Repo1"
# Config to publish all repositories in directory.
#SVNParentPath "D:/SvnRepos/"
#SVNListParentPath On
# Auth config.
AuthName "SVN"
AuthType SSPI
SSPIAuth On
SSPIOfferBasic On
SSPIAuthoritative On
<RequireAny>
# Allows access to any user.
#Require valid-sspi-user
# Allows access to users belonging to specified domain group(s).
Require sspi-group DOMAIN_NAME\TEAM1
# Allows access to specified domain users.
Require sspi-user DOMAIN_NAME\user1
</RequireAny>
</Location>
# Publishes repository 2 at url http://localhost/svn/Repo2 used by several teams.
<Location /svn/Repo2>
# DAV config.
DAV svn
# Config to publish single repository.
SVNPath "D:/SvnRepos/Repo2"
AuthName "SVN"
AuthType SSPI
SSPIDomain DOMAIN_NAME
SSPIAuth On
SSPIOfferBasic On
SSPIAuthoritative On
Require sspi-group DOMAIN_NAME\TEAM1 DOMAIN_NAME\TEAM2 DOMAIN_NAME\TEAM3
</Location>
Хотя я действительно задаюсь вопросом,Исходная конфигурация могла бы сработать, если бы я только что удалил первый элемент location, дающий доступ к каталогу root / svn, я уверен, что я должен был это проверить, но сейчас у меня нет времени проверить это.