PHP LDAP ldap_mod_replace

时间:2015-08-06 13:23:27

标签: php ldap

我正在尝试创建一个接口来更改LDAP用户的密码,直接在站点上为不习惯LDAP的用户使用。我正在使用ldap_mod_replace。为了更改它我需要一个Array $ userdata。现在我想从Textfield设置Passwort。

我需要如何以及如何创建数组

这是我保存功能的代码。

function save($ds, $dn) {
echo "0";

 $newPassword = $_POST['newPassword'];
 $repeatNewPasword = $_POST['repeatNewPasword'];
 echo "1, $repeatNewPasword, $newPassword";
 //newPassword $userdata
 //......
 echo "2";
 if ($repeatNewPasword == $newPassword) {
  echo "3";
    ldap_mod_replace ($ds, $dn, $userdata);

    echo "Erfolgreich, $ds, $dn, $userdata";
 }
else {
 echo "Passwords are different";
}
}

我不熟悉LDAP,根本不知道函数ldap_mod_replace。

1 个答案:

答案 0 :(得分:0)

这取决于存储密码的属性字段。如果密码属性是"密码"你想要用这个:

$ userdata = ['密码' => ];

通常,键的值是一个数字数组,但由于它是一个密码,它只包含一个值而不是多个值。因此,您也可以直接添加值。

请勿忘记根据LDAP-Server使用的密码策略对密码进行哈希处理。您可能希望使用CLI工具" ldappasswd"正确哈希密码。并且您需要以更改密码的用户或具有管理权限的用户身份绑定到LDAP服务器,因为passeord属性通常不可读,因此对其他人不可写。