Mercurial(hg)与活动目录

我可以设置Mercurial在Active Directory上对用户进行身份validation吗? 在我的情况下,hg可以在Windows,Linux或FreeBSD上运行,但是我需要使用AD用户。

注意:如果可能的话,请将我指向一个教程。

那么,我从这个教程开始。

完成之后,我在服务器(Windows 2008)上进行了以下更改:

  • configurationIIS以使用SSL;
  • 禁用该网站的匿名身份validation;
  • 为网站启用基本和Windows身份validation;
  • 在存储库文件夹上configurationNTFS权限。

还需要.hg\hgrc添加到存储库的.hg\hgrc文件中:

在客户端,我不得不明确指定用户名和密码。

 [web] allow_push = * 

如果你正在寻找一些可以在windows,unix上工作的集成系统,并且通过AD / LDAP进行身份validation,可以尝试一下RhodeCode http://rhodecode.com这是一种服务存储库的bitbucket / github的本地实例。 它具有许可系统和简单的用户pipe理,代码审查等。

我几个月前写了一篇4篇博客文章,允许您使用Active Directory / IIS来托pipeMercurial的Web服务器。 它工作的一种享受:

http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html

它引导你通过:

  • 在IIS中设置Mercurial
  • configurationPython的ISAPI扩展
  • ISAPI重写,以隐藏丑陋的url
  • 使用Active Directoryconfiguration安全权限
  • Web UI的自定义

本已经给你一个很好的指导,用AD在IIS上设置Mercurial。

我只想补充一点,您需要知道的关键是,Mercurial 的内置(快速)CGI脚本不会对用户进行身份validation 。 我们提供的CGI脚本依赖前端Web服务器来进行身份validation。 所以你必须设置Apache,IIS,nginx,…来执行身份validation, 然后调用脚本。 (但是,如果您想要一个支持LDAP的类似Bitbucket的系统,您也可以使用优秀的RhodeCode ,也可以连接到AD。)

这种关注的分离使得Mercurial非常灵活:如果你需要Active Directoryauthentication,那么你只需使用标准的插件来为你的web服务器来做到这一点。 许多网站已经有了这个设置,所以Mercurial将“只是工作”:-)

所以Mercurial从不检查任何密码 – authentication部分。 但它可以进行授权 ,这意味着它可以允许或禁止用户推或拉等。这是基于存储在标准REMOTE_USER CGIvariables中的用户名完成的。 Web服务器在对远程用户进行身份validation后设置此variables。

在Mercurial中,用户名与[web]部分中的allow_pushallow_read列表相匹配,以确定是否允许用户推送或拉取/克隆有问题的存储库。 这当然可以通过编辑每个存储库中的.hg\hgrc文件在每个存储库上进行configuration。

不好意思,我刚刚发布了一个alpha版本的HgLab ,它是一个适用于Windows的Mercurial Server,它支持开箱即用的Active Directoryauthentication。