我正在运行一个内部网站,该网站使用Laravel创建,并在CentOs7机器上运行。身份验证是针对Windows Server 2016上的Active Directory完成的。 为了验证用户身份,我设法使用Ldap连接来完成绑定。但是现在我试图创建一个页面来重置用户密码。 这是我的代码:
$suffix = '@domain.domain';
$username = $username . $suffix;
$ldap_con = ldap_connect('my_ip');
ldap_set_option($ldap_con, LDAP_OPT_PROTOCOL_VERSION, 3);
if(ldap_bind($ldap_con,$username,$pass))
echo 'Binded Succesfully';
else
echo 'No Bind';
$dn = '.......';
$pwdtxt = ".......";
$newPassword = '"' . $pwdtxt . '"';
$newPass = iconv( 'UTF-8', 'UTF-16LE', $newPassword );
$userdata["unicodepwd"] = $newPass;
if(ldap_mod_replace($ldap_con, $dn, $userdata))
print "<p>succeded</p>";
else
print "<p>failed</p>";
当我尝试执行以下代码时,我收到错误消息:
ldap_mod_replace(): Modify: Server is unwilling to perform
与不使用安全连接有关。 为了避免尝试使用:
$ldap_con = ldap_connect('ldaps://my_ip/');
它抛出
ldap_bind(): Unable to bind to server: Can't contact LDAP server
有什么解决方法吗?