Ответы:
Ну, я начал с этого урока.
После этого я сделал следующие дополнительные изменения на сервере (Windows 2008):
Также необходимо добавить следующие строки в .hg\hgrc
файл вашего хранилища :
На стороне клиента мне пришлось явно указать имя пользователя и пароль.
[web]
allow_push = *
Если вы ищете какую-то интегрированную систему, которая может работать на Windows, Unix и аутентифицироваться в AD / LDAP, попробуйте RhodeCode http://rhodecode.com Это своего рода локальный экземпляр bitbucket / github, который обслуживает репозитории. Он поставляется с системой разрешений и простым управлением пользователями, проверкой кода и т. Д.
Пару месяцев назад я написал пост в 4 частях, в котором вы можете использовать Active Directory / IIS для размещения веб-сервера Mercurial. Это работает удовольствие:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
Он проведет вас через:
Бен уже дал вам хорошее руководство по настройке Mercurial на IIS с AD.
Я просто хотел бы добавить, что главное, что вам нужно знать, это то, что встроенный (быстрый) CGI-скрипт в Mercurial не аутентифицирует пользователей . Поставляемый нами CGI-скрипт использует интерфейсный веб-сервер для аутентификации. Поэтому вы должны настроить Apache, IIS, nginx, ... для аутентификации, прежде чем они вызовут скрипт. (Тем не менее, вы можете использовать отличный RhodeCode, если вам нужна система типа Bitbucket с поддержкой LDAP, которую вы также можете подключить к AD.)
Такое разделение интересов делает Mercurial очень гибким: если вы хотите аутентификацию Active Directory, то для этого просто используйте стандартный плагин для своего веб-сервера. Многие сайты уже будут иметь эту настройку, и поэтому Mercurial будет «просто работать» :-)
Таким образом, Mercurial никогда не проверяет пароли - часть аутентификации. Но он может выполнять авторизацию , что означает, что он может разрешать или запрещать пользователям выдвигать или извлекать данные и т. Д. Это делается на основе имени пользователя, хранящегося в стандартной REMOTE_USER
переменной CGI . Веб-сервер должен установить эту переменную после аутентификации удаленного пользователя.
В Mercurial, имя пользователя сравнивается с allow_push
и allow_read
списков в [web]
разделе , чтобы определить , если пользователь может толкать или тянуть / клон репозитория в вопросе. Конечно, это можно настроить для каждого хранилища, отредактировав .hg\hgrc
файлы в каждом хранилище.
Извините за некропост, но я только что выпустил альфа-версию HgLab , который является Mercurial Server для Windows и поддерживает аутентификацию Active Directory из коробки.