[英]LDAP CHANGE PASSWORD PHP
我想使用PHP LDAP在Windows Active Directory上更改用户密码[unicodePwd]。
我正在通过PHP LDAP使用Windows Active Directory。
我对此没有任何问题。
我收集数据没有任何问题。
我使用ldap_mod_replace或ldap_modify更改属性没有任何问题
除了“ unicodePwd”。
*请注意,这有效
$user['telephonenumber'] = '1234567890';
*请注意,这不起作用
$user['unicodePwd'] = mb_convert_encoding('my_new_password', "UTF-16LE");
//代码
$result = ldap_modify($ldap, $dn, $user);
return ldap_error($ldap);
//代码
//更改unicodePwd时出错
ldap_modify(): Modify: Server is unwilling to perform
//电话号码没有错误
我无法将我的服务器设置为在ssl上具有ldap。 已经尝试安装AD CS,到目前为止没有任何效果。 还在配置我的服务器有关安装用于SSL over LDAP的CA(证书颁发机构)的任何想法吗?
已经设置了LDAP OVER SSL,我也可以使用ldap
cmd-> ldp; 端口389,带有ssl的636很好。
但是当我使用端口636或ldaps:// servername在我的php中运行它时,这是错误,
ldap_bind(): Unable to bind to server: Can't contact LDAP server
您需要建立安全连接才能修改密码 (以及其他可能与安全相关的选项)。
在调用ldap_bind()
之前添加以下内容:
ldap_start_tls($ldap);
即使您不尝试更改密码,这也是一个好主意,否则您的绑定操作是明文并且可以被嗅探。
如果看到此错误:
警告:ldap_start_tls():无法启动TLS:连接错误...
您可以在调用ldap_connect
之前添加以下行来解决此问题:
putenv('LDAPTLS_REQCERT=never');
警告 :这将禁用检查LDAP服务器证书的有效性! 理想情况下,您应该将服务器证书(或其签名CA)添加到受信任的存储中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.