2010-07-05 59 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)中正确运行两个端口。

相关问题