php_ldap超过ssl的困难

时间:2010-02-04 14:11:23

标签: php ssl active-directory ldap sasl

我正在尝试使用来自Ubuntu(hardy 8.04LTS)主机的php_ldap(使用ADLdap)绑定到AD。 端口389上的绑定对于ldap:// myserver很好,但是不允许我做设置密码之类的事情,所以我需要在端口636上绑定到ldaps:// myserver。

我知道某种形式的凭据传递可能会带来证书,但我真的很难让任何工作 - 绑定在ldaps上失败。

测试装备AD在域mydom.local中有一个容器Users 我在“用户”容器中用于绑定的帐户,其DN为

'CN=LDAP BIND,OU=Users,DC=mydom,DC=local' and a password of 'mypass'

其sAMAccount名称为ldap

我怀疑我需要在ubuntu盒子上安装一些额外的软件包,或者在Windows服务器上为AD做一些魔术,或者做一些证书抓取的东西,但我被卡住了。

只是添加一些细节,如果我尝试从命令行与ldapsearch连接以搜索一些名为install的用户,我得到

ldapsearch -vv   -H 'ldaps://server.mydom.local' -Y DIGEST-MD5 -X 'dn:CN=LDAP BIND,OU=Users,DC=mydom,DC=local' sAMAccountname=install -U 'u:LDAP BIND'
ldap_initialize( ldaps://server.mydom.local:636/??base )
SASL/DIGEST-MD5 authentication started
Please enter your password: mypass
ldap_sasl_interactive_bind_s: Invalid credentials (49)

正如我所说,我可以成功绑定389。

我在ubuntu框上安装了ldap-utils,libldap,php5-ldap和/etc/ldap/ldap.conf是:

TLS_REQCERT never
BINDDN 'CN=LDAP BIND,OU=Users,DC=mydom,DC=local'
URI ldaps://server.mydom.local

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

啊哈哈!找到它 - 为了通过ssl绑定到AD,你需要安装libsasl2-modules-gssapi-mit - 所以在ubuntu上使用

apt-get install libsasl2-modules-gssapi-mit

我在这里找到答案:https://help.ubuntu.com/community/ActiveDirectoryHowto

这使我所有的绑定问题都消失了。 显然,如果您这样做是为了允许ADLdap更改密码,那么您绑定的用户将需要AD服务器上的足够权限。