2012-11-16 36 views
0

与ldap_sasl_bind到LDAP我对LDAP该用户:UID =用户,OU =人民,DC =前,DC = com的 我连接到LDAP服务器如何连接在PHP

$con = ldap_connect('ldap://ex.com'); 
ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3); 
ldap_set_option($con, LDAP_OPT_REFERRALS, 0); 

我尝试绑定与ldap_sasl_bind:

​​

不行 - “无效凭证”

ldap_sasl_bind($con, NULL, 'secret', 'DIGEST-MD5', NULL, 'uid=user,ou=People,dc=ex,dc=com'); 

同样的结果 - “无效凭证”

ldap_bind($con, 'uid=user,ou=People,dc=ex,dc=com', 'secret') 

做工精细

+0

您可以使用已知良好的工具'ldapsearch'进行身份验证,其参数与PHP LDAP客户端中的参数相同吗? –

+0

无效凭证(49)附加信息:SASL(-17):一次使用明文密码将启用用户请求的机制:数据库中没有秘密 –

回答

1

当使用低安全性SASL方法一样DIGEST-MD5,服务器必须能够得到由著名名字命名的条目中的明文密码。这意味着密码必须以明文形式存储或采用可逆加密(这会降低安全性,因为DIGEST-MD5应该被视为低安全性,并且要避免,除非LDAP客户端要求; LDAP客户端应该更喜欢使用简单验证一个安全的连接)。

检查以确保uid=user,ou=People,dc=ex,dc=com的条目有密码secret可供服务器使用,即密码存储方案是明文或可逆加密,如上所述。如果使用可逆加密,应该使用最强的方法,我相信这是AES