У меня есть набор частных репозиториев 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?