У меня есть набор частных репозиториев Subversion на Windows Server 2003, к которым разработчики получают доступ через SVNServe по протоколу svn: //. В настоящее время мы используем файлы authz и passwd для каждого репозитория для управления доступом, однако, с ростом числа репозиториев и разработчиков, я рассматриваю возможность перехода на использование их учетных данных из ActiveDirectory. Мы работаем во всем магазине Microsoft и используем IIS вместо Apache на всех наших веб-серверах, поэтому я предпочел бы продолжать использовать SVNServe, если это возможно.
Помимо возможности, я также обеспокоен тем, как перенести наши репозитории, чтобы история существующих пользователей отображалась в правильные учетные записи ActiveDirectory. Помните также, что я не являюсь сетевым администратором и не очень хорошо знаком с ActiveDirectory, поэтому мне, вероятно, придется пройти через некоторых других людей, чтобы получить изменения, сделанные в ActiveDirectory, если это необходимо.
Какие у меня варианты?
ОБНОВЛЕНИЕ 1: Из документации SVN следует, что с помощью SASL я должен иметь возможность заставить SVNServe проходить аутентификацию с использованием ActiveDirectory. Чтобы уточнить, ответ, который я ищу, заключается в том, как настроить SVNServe (если это возможно) для использования ActiveDirectory для аутентификации, а затем как изменить существующее хранилище, чтобы переназначить существующих пользователей SVN в их учетные записи входа в домен ActiveDirectory.
ОБНОВЛЕНИЕ 2: Похоже, что поддержка SASL в SVNServe основана на модели плагина, а документация приведена только в качестве примера. Глядя на библиотеку Cyrus SASL, кажется, что поддерживается несколько «механизмов» аутентификации, но я не уверен, какой из них следует использовать для поддержки ActiveDirectory, и не могу найти никакой документации по таким вопросам.
ОБНОВЛЕНИЕ 3: Хорошо, похоже, что для связи с ActiveDirectory я собираюсь использовать saslauthd вместо sasldb для свойства auxprop_plugin . К сожалению, похоже, что согласно некоторым сообщениям (возможно, устаревшим и неточным) saslauthd не опирается на Windows, и такие попытки считаются незавершенным .
ОБНОВЛЕНИЕ 4: Последнее сообщение, которое я нашел по этой теме, звучит так, как будто надлежащие исполняемые файлы () доступны через библиотеку MIT Kerberos, но похоже, что у автора этого поста на Nabble.com все еще есть проблемы с работой ,
ОБНОВЛЕНИЕ 5: Это похоже на обсуждения TortoiseSVN, а также на этот пост на svn.haxx.seчто даже если saslgssapi.dll или любые другие необходимые двоичные файлы доступны и настроены на сервере Windows, клиентам также потребуется такая же настройка для работы с этими репозиториями. Если это так, мы сможем получить поддержку ActiveDirectory от клиента Windows только в том случае, если будут внесены изменения в этих клиентах, таких как TortoiseSVN и сборка клиентских двоичных файлов CollabNet для поддержки таких схем аутентификации. Хотя это то, что предлагают эти посты, это противоречит тому, что я изначально предполагал из другого прочтения, что совместимость с SASL не требует никаких изменений на клиенте, а только то, что сервер настроен для обработки механизма аутентификации. После более внимательного прочтения в документе про Cyrus SASL в SubversionВ разделе 5 говорится, что «1.5+ клиентов с поддержкой Cyrus SASL смогут проходить аутентификацию на 1.5+ серверах с включенным SASL, при условии, что клиент также поддерживает по крайней мере один из механизмов, поддерживаемых сервером». Очевидно, что поддержка GSSAPI (что, как я понимаю, требуется для Active Directory) должна быть доступна на клиенте и на сервере.
Я должен сказать, что я слишком много узнаю о том, как Subversion обрабатывает аутентификацию, чем я когда-либо хотел. И, к сожалению, я просто искал ответ о том, могу ли я иметь поддержку аутентификации Active Directory при использовании SVNServe на сервере Windows и доступе к нему через клиенты Windows. Согласно официальной документации кажется, что это возможно, но вы можете видеть, что конфигурация нетривиальна, если вообще возможна.
ОБНОВЛЕНИЕ: 6: Поскольку разработка на Subversion 1.7 завершается, кто-нибудь может добавить что-нибудь о том, улучшит ли Subversion 1.7 ситуацию с получением SVNServe для аутентификации с использованием Active Directory?
Ответы:
Как уже упоминалось, VisualSVN Server - это инструмент, который вам нужен. Это пакет «все в одном» для Windows, который, как оказалось, использует Apache внутри него - вы никогда не узнаете, если не покопаетесь в dll, который он устанавливает, для всех - это служба Windows, которая имеет оснастку mmc для администрировать это. Вы можете изменить порт, на котором он работает, если у вас уже занят порт 80.
Я понимаю, что поддержка sasl через svnserve сейчас работает.
источник
я использую apache с svn, работающим на Debian Linux, авторизирующим снова активный сервер каталогов. клиенты подключаются к хранилищу по протоколу http. если эта настройка приемлема для вас - продолжайте чтение.
это также должно работать под Apache для Windows, но я никогда не пробовал. то, что следует, является специфичным для Debian, но должно работать аналогично в windows / других дистрибутивах; вы не потеряете свою историю SVN во время миграции ...
установить необходимое программное обеспечение:
в конфигурации для Apache vhost [символические ссылки на них можно найти в / etc / apache2 / sites-enabled]. внутри VirtualHost добавить:
убедитесь, что apache загружает модуль ldap:
убедитесь, что apache может изменять файлы в хранилище svn:
ваш svn_authz должен содержать правила, указывающие, кто и к чему имеет доступ. в моем случае:
Вы можете узнать больше о синтаксисе для этого файла здесь .
если вы зашли так далеко - ваши пользователи могут проверить с http: //server.address/svn/, используя любой svn-клиент [tortoise / cmdline / visual svn], они увидят всю историю и продолжат чтение / запись в нее.
источник
Вы можете использовать saslNTML вместо GSSAPI. DLL-файл saslNTML по умолчанию устанавливается вместе с TSVN, и я думаю, что он также включен в svn-клиент от collab.net.
В вашем конфигурационном файле sasl есть две опции :
и необязательно
и, конечно, вы должны установить список мехов в вашем конфигурационном файле, чтобы включить NTML.
Я только попробовал это однажды с TSVN, когда я реализовал все это. Но у меня был кто-то другой, настроивший для меня тестовый сервер, поэтому я понятия не имею, какие именно параметры конфигурации.
источник