操作系统:Linux OpenSUSE 版本控制 - Mercurial Apache2
我运行 http://my.os.name/ 它给了我一个页面 - 因此 apache 正在运行。我运行 http://my.os.name:/hg - 它显示 Mercurial 页面,因此 mercurial 显示在 http Internet Explorer 页面上。
我能够在 Mercurial 中创建存储库/或进行正常工作。
我需要的。1. 当我打开上面的 Hg 链接时,而不是显示 Mercurial(Hg) 存储库页面主页,它应该首先检查我是否属于我的公司,即它应该使用 Windows Active Directory 或 LDAP 服务器进行身份验证。
- 如果我对文件进行任何更改或在 Hg 中创建目录/存储库,那么它应该确保 / 验证/验证我是否具有执行该操作的有效访问权限。
我该怎么做,我需要一步一步的帮助,因为我是 Apache/Mercurial 身份验证设置的新手。
我几乎已经阅读了有关设置的所有在线帮助,到目前为止,我能够确定当我打开 Hg 链接时,是否会弹出用户名/密码提示,但它没有接受它/不起作用。
我也不想创建 .htpasswd/ .htaccess 或摘要文件。我想知道的是,如果在 Windows Active Directory 中,如果我为 ex 创建了一个安全组:Company/Project1_readers、Company/Project1_Contributors、Company/Project1_Repository1_Readers、Company/Project1_Repository2_Contributors... 并且在那些 AD 安全组 ID 中,如果我添加了所有开发人员,然后在 AD 中使用这些组,我想授予开发人员访问权限,而不是在 .hg/hgrc 文件中添加这些用户。(这通常是我们在 TFS(Team Foundation Server)中授予/撤销访问权限的方式),而不是在每个存储库等中弄乱文件(添加/删除用户)等。
我该怎么做以上?
如果最好的方法是只创建 .htpasswd/.htaccess/.htdigest 等文件,请告知...如果我在实现上述情况时错了。
我的 httpd.conf 文件包含另一个 .conf 文件(其中包含)
==========================================
<Directory /srv/www/hg>
Order deny,allow
Deny from All
AuthType Basic
# #AuthName "Apache Web Site: Login with your AD(Active Directory) credentials"
AuthName "Mercurial Repositories"
#
#
# AuthBasicProvider ldap
# AuthzLDAPAuthoritative off
# #AuthLDAPURL ldap://10.211.16.1:389/OU=TSH,DC=tsh,DC=Mason,DC=com?sAMAccountName
# AuthLDAPURL "ldap://10.211.16.1:389/?samAccountName?sub?(objectClass=user)"
## #ldap://ldap.your-domain.com:389/o=stooges?uid?sub
# AuthLDAPBindDN "cn=xyzserver,OU=Services,OU=Users,OU=Infrastructure,OU=DEN,OU=KSH,DC=Psh,DC=Mason,DC=com"
# #"cn=StoogeAdmin,o=stooges"
# AuthLDAPBindPassword secret1
require valid-user
# require ldap-user
Satisfy any
</Directory>
当我在 Jenkins 中使用 abvoe LDAP URL 时,Jenkins 在登录时成功地对用户进行身份验证,那么为什么在此服务器的 .conf 文件中同样不起作用。注意,在 apache2 中,以上内容不必在 httpd.conf 文件中。包含概念是让我包含 file.conf 和 file.conf 包含上述代码。这与 httpd.conf 文件中提到的 Apache2 方向一致。
其余的 mercurial 文件 hgwebdir.cgi、hgweb.cgi、hgweb.config 都很好(根据我读过的在线博客)。
我已经加载了所有必需的模块(因为它们在 /etc/apache2/sysconfig.d/loadmodule.conf 文件中可见(LDAP auth 所需的模块,即 mod_ldap、mod_authz_ldap 等与 ldap 和 apache 相关的模块)。