我正在尝试从 Ubuntu(hardy 8.04LTS)主机使用 php_ldap(使用 ADLdap)绑定到 AD。绑定 389 端口对 ldap://myserver 没问题,但不允许我做设置密码之类的事情,所以我需要在端口 636 上绑定 ldaps://myserver。
我知道会发生某种形式的凭证传递,可能是证书,但我真的很难让任何东西正常工作 - ldaps 上的绑定失败。
测试台 AD 有一个容器 Users,在域 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 box上安装了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
有什么建议吗?