如何在php中使用ldap_sasl_bind连接到ldap

时间:2012-11-16 08:40:47

标签: php ldap openldap

我在LDAP上有这个用户:uid = user,ou = People,dc = ex,dc = com 我用

连接到LDAP服务器
$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, 'uid=user,ou=People,dc=ex,dc=com', 'secret', 'DIGEST-MD5');

无效 - “凭据无效”

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')

工作正常

1 个答案:

答案 0 :(得分:1)

使用SASL之类的低安全性DIGEST-MD5方法时,服务器必须能够从专有名称命名的条目中获取明文密码。这意味着密码必须以明文或可逆加密方式存储(这会降低安全性,如果条目,DIGEST-MD5应被视为低安全性并避免使用,除非LDAP客户端要求; LDAP客户端应优先使用简单身份验证安全连接。)

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