具有活动目录的Mercurial(hg)


15

我可以设置Mercurial来对Active Directory上的用户进行身份验证吗?就我而言,hg可以在Windows,Linux或FreeBSD上运行,但是我需要使用AD用户。

注意:如果有可能,请给我指向一个教程。

Answers:


11

好吧,我从教程开始。

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

  • IIS配置为使用SSL;
  • 禁用站点的匿名身份验证;
  • 为网站启用基本身份验证和Windows身份验证;
  • 在存储库文件夹上配置的NTFS权限。

还需要在存储库的.hg\hgrc文件中添加以下行:

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

[web]
allow_push = *

5

如果您正在寻找可以在Windows,Unix上运行并可以对AD / LDAP进行身份验证的集成系统,请尝试使用RhodeCode http://rhodecode.com。这是提供存储库的bitbucket / github的本地实例。它带有权限系统,易于用户管理,代码审查等。


对RhodeCode表示赞成!:-)
Martin Geisler

4

几个月前,我写了一个由四部分组成的博客文章,使您可以使用Active Directory / IIS托管Mercurial的Web服务器。它可以治疗:

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

它会引导您完成:

  • 在IIS中设置Mercurial
  • 为Python配置ISAPI扩展
  • ISAPI重写以隐藏丑陋的URL
  • 使用Active Directory配置安全特权
  • 定制Web UI

+1,很棒的博客文章。我们正在为Windows和Linux项目试用Mercurial。您是否有机会为IIS 7.5更新本指南?
jscott 2012年

我将一到升级服务器即可。
BenAlabaster

3

Ben已经为您提供了一个使用AD在IIS上设置Mercurial的良好指南。

我想补充一点,您需要知道的关键是Mercurial 内置的(快速)CGI脚本不会对用户进行身份验证。我们提供的CGI脚本依赖于前端Web服务器进行身份验证。因此,它们调用脚本之前,必须先设置Apache,IIS,nginx等进行身份验证。(但是,如果您想要一个具有LDAP支持的类似Bitbucket的系统,并且也可以连接到AD ,则可以使用出色的RhodeCode。)

关注点的分离使Mercurial非常灵活:如果您想要Active Directory身份验证,则只需使用Web服务器的标准插件即可。许多站点已经具有此设置,因此Mercurial将“正常工作” :-)

因此,Mercurial永远不会检查任何密码-身份验证部分。但是它可以进行授权,这意味着它可以允许或禁止用户推入或拉出等。这是基于存储在标准REMOTE_USERCGI变量中的用户名完成的。在验证远程用户身份后,由Web服务器来设置此变量。

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.