У мене є набір приватних сховищ Subversion у вікні Windows Server 2003, до якого розробники отримують доступ через SVNServe через протокол svn: //. В даний час ми використовуємо файли authz і passwd для кожного сховища для контролю доступу, однак зі зростаючою кількістю сховищ та розробників, я розглядаю можливість переходу на використання своїх облікових даних з ActiveDirectory. Ми працюємо у магазині Майкрософт та використовуємо 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 . На жаль, виявляється, що згідно з деякими публікаціями (можливо, застарілими та неточними), саслаутд не працює на Windows, і такі починання вважаються незавершеною роботою .
ОНОВЛЕННЯ 4: Найпізніша публікація, яку я знайшов на цю тему, звучить так, ніби відповідні бінарні файли () доступні через бібліотеку MIT Kerberos, але це здається, що у автора цього повідомлення на Nabble.com все ще виникають проблеми з тим, як працювати .
ОНОВЛЕННЯ 5: Це схоже на дискусії TortoiseSVN, а також цей пост на svn.haxx.seщо навіть якщо saslgssapi.dll або будь-які необхідні бінарні файли доступні та налаштовані на сервері Windows, клієнтам також знадобиться така ж настройка для роботи з цими сховищами. Якщо це правда, ми зможемо отримати підтримку ActiveDirectory від клієнта Windows тільки в тому випадку, якщо в цих клієнтах будуть внесені зміни, такі як TortoiseSVN та CollabNet побудова клієнтських бінарних файлів для підтримки таких схем аутентифікації. Незважаючи на те, що пропонують ці публікації, це суперечить тому, що я спочатку припускав, що я читав з іншого читання, оскільки сумісність з SASL не потребує змін клієнта, а лише налаштування сервера для роботи з механізмом аутентифікації. Прочитавши трохи уважніше в документі про Сайрус 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?