我正在尝试创建一个接口来更改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。
答案 0 :(得分:0)
这取决于存储密码的属性字段。如果密码属性是"密码"你想要用这个:
$ userdata = ['密码' => ];
通常,键的值是一个数字数组,但由于它是一个密码,它只包含一个值而不是多个值。因此,您也可以直接添加值。
请勿忘记根据LDAP-Server使用的密码策略对密码进行哈希处理。您可能希望使用CLI工具" ldappasswd"正确哈希密码。并且您需要以更改密码的用户或具有管理权限的用户身份绑定到LDAP服务器,因为passeord属性通常不可读,因此对其他人不可写。