使用Active Directory身份验证和授权设置Mercurial


19

我正在评估将组织迁移到Mercurial的可能性,但是我在两个基本要求上绊脚石,而我找不到合适的指示。

如何设置Mercurial的中央存储库,以使用中央Active Directory对用户进行身份验证,并且仅在具有正确凭据的情况下才允许他们推送或拉出用户?

如何设置Mercurial项目存储库,以仅允许属于特定组的用户推/拉源代码?我们需要有每个项目的授权。

在哪两个HTTP服务器(IIS或Apache等)上支持上述两个要求?

如果我要提出明显的要求或缺少有关身份验证和授权工作原理的基本知识,我们深表歉意。


Answers:


6

我做了一个四部分的博客文章,介绍如何在具有Active Directory身份验证的IIS上设置Mercurial,并使用hgwebdir.cgi进行推送授权。它涉及以下整个过程:

  • 在IIS上设置Mercurial的hg Web界面。
  • 为Mercurial设置IIS身份验证,以便只有通过活动目录授权的用户(即安全组/用户)才能通过hg Web界面或文件系统查看/访问存储库。
  • 为Mercurial用户配置Active Directory身份验证,以便只有授权用户才能查看/访问他们有权访问的存储库。
  • 通过hgweb.config配置hgwebdir.cgi,以将指定用户的推送授权设置为存储库。
  • 在存储库的URL中使用Helicon的ISAPI Rewrite隐藏hgwebdir.cgi。
  • 根据自己的喜好自定义hg Web用户界面的样式/风格。

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

我希望它对人们有用。


4

您可以使用Apache来完成。在以下位置查看如何限制推送Apache:

http://mercurial.selenic.com/wiki/PublishingRepositories#pushing

上面在同一文件上似乎有关于如何配置Merurial,其权限以及Apache允许的所有用户的信息。

设置了mercurial和Apache之后,可以使用mod_authnz_ldap仅允许访问Active Directory用户:

http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html

不要忘记查看有关Active Directory配置的段落。

这对您来说应该足够了。

祝你好运,
JoãoMiguel Neves


使用authnz_ldap可以在客户端和Apache之间传输未加密的密码。我正在尝试找出避免这种情况的方法,但是运气不好。
LeBleu 2015年
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.