2012-09-10 75 views
0

操作系統:Linux的OpenSUSE 版本控制 - 水銀 的Apache2阿帕奇 - 水銀 - 身份驗證 - Active Directory組/ LDAP組

我運行的http://my.os.name/它給了我一個頁面 - 從而阿帕奇在跑。 我運行http://my.os.name:/ hg - 它顯示我Mercurial頁面,因此mercurial在http Internet Explorer頁面上顯示爲 。

我可以創建存儲庫/或在Mercurial中進行正常工作。

我需要什麼。 1.當我打開上面的Hg鏈接 然後,它應該首先檢查我是否屬於我的公司,而不是向我顯示Mercurial(Hg)存儲庫頁面主頁,它應該使用Windows Active Directory或LDAP服務器進行身份驗證。

  1. 如果我做一個文件進行任何更改或創建汞目錄/存儲庫,那麼就應該確保/認證/驗證我是否有有效的訪問做操作與否。

如何做到這一點,我需要一步一步的幫助,因爲我是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中,if我添加了所有開發人員,然後在AD中使用這些組,我想授予開發人員訪問權限,而不是將這些用戶添加到.hg/hgrc文件中。 (這是我們通常在TFS(團隊基礎服務器)授予/撤消訪問權限)而不是在每個存儲庫中混淆文件(添加/刪除用戶)。

我怎樣才能做到以上?

請注意,如果最好的方法是隻創建.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> 

當我使用詹金斯abvoe LDAP URL,詹金斯被成功驗證用戶在登錄時,那麼爲什麼同樣是不工作的時候它在這個服務器的.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相關)。

回答

0

如果多次提示用戶憑證在mercurial中。安裝Mercurial_Keyring然後

這個問題來了,沒有人用簡單的方法解釋。

???如果我使用servername,servername的IP或servername的FQDN,如何使[auth] xx.prefix = servername/hg_or_something適用於servername/hg位置下的所有存儲庫?

答:阿倫•2分鐘前 -

OK, I put this in ~/.hgrc (Linux/Unix -home directory's .hgrc hidden file) or Windows users %UserProfile%/mercurial.ini or %HOME%/mercurial.ini file. 

[auth] 
default1.schemes = http https 
default1.prefix = hg_merc_server/hg 
default1.username = c123456 

default2.schemes = http https 
default2.prefix = hg_merc_server.company.com/hg 
default2.username = c123456 

default3.schemes = http https 
default3.prefix = 10.211.222.321/hg 
default3.username = c123456 

Now, I can checkout using either Server/IP/Server's FQDN. 
0

好吧,沒有拿我的Windows Ldap憑證的提示部分現在正在工作。

我發錯了什麼。 - 請參見行:對於AuthLDAPURL和AuthLDAPBindPassword,這些是我在上面顯示的帖子中的罪魁禍首。 - 原因是,我是Windows AD/LDAP概念的新手,所以無法從我公司的系統團隊中找到任何人。所以試了我自己的雙手。 AuthLDAPURL的第一行,我從我們的一個Jenkins實例的GLOBAL配置文件(config.xml)獲得。

Jenkins顯示配置的GUI不顯示密碼(因爲它們被屏蔽)所以你會看到經理的DN密碼爲「* * * * * *」。 所以,我想我應該打開Jenkins實例的config.xml文件,並從那裏獲得密碼「secret1」。其實「祕密1」只是一個例子,實際上它在那裏有一些瘋狂的價值,比如「VVX12 ##!5GH」。

因此,基本上我之前使用的那種LDAP身份驗證無法正常工作,您必須與SYSTEMS團隊中的某個人或實際在Jenkins實例中進行LDAP身份驗證的人員進行交談。

最後我得到了密碼,它的工作。

解決方案:看看下面我改變了什麼。注意

  • 一個重要的事情是,在詹金斯,AUTHURL爲LDAP是:

    AuthLDAPURL LDAP://10.211.16.1:389/OU = TSH,DC = TSH,DC =梅森, DC = com的?sAMAccountName賦

但是,從 在Unix/Linux /在我的情況下,SUSE機,我們有一點點改變這一行

AuthLDAPURL ldap://10.211.16.1:389/OU=TSH,DC=tsh,DC=Mason,DC=com?sAMAccountName?sub 

有關這方面的(APACHE2.2上連接到Windows AD(活動目錄)認證): PS:http://www.yolinux.com/TUTORIALS/LinuxTutorialApacheAddingLoginSiteProtection.html

,然後 - 我把正確的密碼在CN = xyzserver(經理DN用戶ID)文件和一切都很好。

快照Apache的配置文件或您已單獨創建幷包含在文件中的httpd.file或通過在/ etc/SYSCONFIG/Apache2的文件管理器(可變APACHE_INCLUDE ......)現在的樣子:

<Directory /srv/www/htdocs/hg> 
    Order deny,allow 
    Deny from All 
    AuthType Basic 
    AuthName "LDAP Access - Mercurial" 
    AuthBasicProvider ldap 
    AuthzLDAPAuthoritative off 
    AuthLDAPURL ldap://10.211.16.1:389/OU=TSH,DC=tsh,DC=Mason,DC=com?sAMAccountName?sub 

#AuthLDAPURL "ldap://10.211.16.1:389/OU=TSH,DC=Mason,DC=com?sAMAccountName?sub?(objectClass=*)" 

    AuthLDAPBindDN "cn=xyzserver,OU=Services,OU=Users,OU=Infrastructure,OU=DEN,OU=KSH,DC=Psh,DC=Mason,DC=com" 

    AuthLDAPBindPassword CorrectPassword! 

# require ldap-user c149807 
# AuthUserFile "/dev/null" 

    require valid-user 
    Satisfy any 
</Directory> 

由於Auth部分是從Linux/Unix/OpenSUSE機器上的IE(Internet Explorer)到Hg(Mercurial)完成的,因此我將致力於在實際存儲庫中獲取用戶訪問部分。

相關問題