Mercurial (hg) с активным каталогом
Могу ли я настроить Mercurial для аутентификации пользователей в Active Directory? В моем случае hg может работать в Windows, Linux или FreeBSD, но мне нужно использовать пользователей AD.
Примечание: если это возможно, пожалуйста, укажите мне учебник.
5 ответов
Ну, я начал с этого урока.
После этого я сделал следующие дополнительные изменения на сервере (Windows 2008):
- Настроил IIS для использования SSL;
- Отключена анонимная аутентификация для сайта;
- Включена базовая и Windows аутентификация для сайта;
- Настроил разрешения NTFS для папки репозитория.
Также необходимо добавить следующие строки в ваш репозиторий .hg\hgrc
файл:
На стороне клиента мне пришлось явно указать имя пользователя и пароль.
[web]
allow_push = *
Если вы ищете какую-то интегрированную систему, которая может работать на Windows, Unix и аутентифицироваться в AD/LDAP, попробуйте RhodeCode http://rhodecode.com/ Это своего рода локальный экземпляр bitbucket/github, который обслуживает репозитории. Он поставляется с системой разрешений и простым управлением пользователями, проверкой кода и т. Д.
Пару месяцев назад я написал блог-пост из четырех частей, в котором вы можете использовать Active Directory/IIS для размещения веб-сервера Mercurial. Это работает удовольствие:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
Он проведет вас через:
- Настройка Mercurial в IIS
- Настройка расширений ISAPI для Python
- ISAPI переписать, чтобы скрыть некрасивые URL
- Настройка привилегий безопасности с использованием Active Directory
- Настройка веб-интерфейса
Бен уже дал вам хорошее руководство по настройке 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 из коробки.