2010-07-05 94 views
3

我正在嘗試對通過Apache HTTP Server訪問的Subversion存儲庫使用LDAP身份驗證。 無論我試試,阿帕奇生成以下錯誤信息:無法使用Apache和LDAP對Subversion用戶進行身份驗證

authentication failed; URI /repos/branches/my-branch [ldap_search_ext_s() for user failed][Operations Error] 

我使用Sysinternals公司的AD資源管理器連接到我的AD服務器,可以看到有數據,所以我相信這是一個問題我LDAP URL搜索字符串。我試過了幾個變化,但總是得到上述錯誤。這是我在httpd.conf中的。任何建議或想法來診斷這將不勝感激。

<Location /repos> 
    DAV svn 
    SVNPath C:\repos 
    AuthType Basic 
    AuthzLDAPAuthoritative off 
    AuthBasicProvider ldap 
    AuthName "IT Subversion repository" 
    AuthLDAPURL "ldap://x.y.z.com:389/DC=y,DC=z,DC=com?sAMAccountName?sub?(objectClass=user)" NONE  
    Require valid-user 
</Location> 
+0

不應該'error.log'提供更詳細的錯誤信息? – 2010-07-05 08:41:44

+0

所有我在error.log上面顯示,即 [2010年1月5日星期一09:08:03] [警告] [客戶端127.0.0。1] [9556] auth_ldap認證:用戶xxxxxxxx認證失敗; URI/repos/branches/my-branch [用戶失敗時的ldap_search_ext_s()] [操作錯誤] – 2010-07-05 08:49:44

+0

本頁討論有關Ldap REFERRALS選項的問題,該選項必須關閉http://michele.pupazzo.org/diary/?p = 227 不幸的是,我不知道如何在Windows上關閉Apache 2.2。 似乎有一個LDAPReferrals指令,可以在httpd.conf文件中設置該指令,但這不適用於mod_ldap 2.2,只有2.3,它仍然是alpha版本 http://httpd.apache.org/docs /trunk/mod/mod_ldap.html#ldapreferrals – 2010-07-06 10:41:44

回答

1

看來您使用的Active Directory不允許匿名綁定。嘗試添加以下內容:

# Active Directory requires an authenticating DN to access records 
# This is the DN used to bind to the directory service 
# This is an Active Directory user account. 
AuthLDAPBindDN "CN=someuser,CN=Users,DC=y,DC=z,DC=com" 

# This is the password for the AuthLDAPBindDN user in Active Directory 
AuthLDAPBindPassword some_secret_password 
0

最近,我有這個問題,你需要添加3個額外的參數

AuthLDAPBindDN "CN=someuser,CN=Users,DC=y,DC=z,DC=com" 
AuthLDAPBindPassword some_secret_password 

像jgnagy建議,同時它也幫助我,當我加入

Satisfy Any 
0

LDAPReferrals只是在早期版本中不存在,所以沒有什麼可關閉的,真的...

我想如果你設法匹配一個新的LDAP/Apache的LDAP引用作爲一個選項,並試圖使用和舊的AD,你必須關閉它。

對於其他人找到這個,你應該爲了試試這些: 的telnet YOUR_AD_SERVER 389

要麼你得到一個連接和類似轉義字符是〜,或者你已經得到了錯誤的名稱/ IP您AD或您的防火牆阻止您的計算機通過端口389訪問AD。

接下來,安裝openldap命令行工具openldap-clients,並查看是否可以使用ldapsearch(讀取手冊頁)執行直接搜索到您的AD服務器,中間沒有Apache。

1

我有一些相似的東西,雖然陌生。起初,它在測試時,但在一些Apache重新啓動和配置微調後,它停止工作。

經過在互聯網上的長時間搜索,似乎我不得不將端口從389更改爲3268.這解決了我的「[ldap_search_ext_s()for user failed] [Operations Error]」出於某種原因的錯誤。我仍然不明白爲什麼,或者爲什麼它起初工作,但它爲我做了。

1

有同樣的問題,你需要在/etc/ldap/ldap.conf指定:

REFERRALS off 

解決我的問題。

1

我的問題是通過將端口從389更改爲3268而出售的。端口389僅查看本地Direcotry,但查找全局目錄3268。令人困惑的是,在LDAP瀏覽器(例如JXplorer)中正確運行兩個端口。

相關問題