Изменить пароль Ad Server Ad Windows 2022 с помощью PHP 8.3Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Изменить пароль Ad Server Ad Windows 2022 с помощью PHP 8.3

Сообщение Anonymous »

Мне интересно, столкнулся ли кто -нибудь здесь на той же проблеме и/или имеет решение для этого. Я раньше имел дело с LDAP и вносил изменения в пароль учетной записи с использованием PHP, и успешно реализовал сценарии с изменением пароля без каких -либо проблем. На этот раз пара является PHP 8.3 и Windows Server 2022 Active Directory и каким -то образом продолжает сталкиваться с ошибкой «недостаточного доступа». Протокол, который я использую, является LDAPS, и использует роль администратора домена в качестве сервиса, но ошибка сохраняется. < /P>
Ниже приведен фрагмент моего кода: < /p>
$ldap_conn = ldap_connect($ldap_server);
if (!$ldap_conn) {
die("Could not connect to LDAP server.");
}
ldap_set_option(NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, LDAP_OPT_X_TLS_NEVER);
ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0);

// Bind as the service account
if (!ldap_bind($ldap_conn, $ldap_user, $ldap_password)) {
die("Could not bind to LDAP server.");
}

// Find the user's DN
$filter = "(sAMAccountName=$username)";
$search = ldap_search($ldap_conn, $ldap_dn, $filter);
$entries = ldap_get_entries($ldap_conn, $search);

if ($entries['count'] > 0) {
$user_dn = $entries[0]['dn'];

// Bind as the user to verify the current password
if (ldap_bind($ldap_conn, $user_dn, $current_password)) {
// Encode the new password
$new_password_encoded = "\"" . $new_password . "\"";
$new_password_encoded = mb_convert_encoding($new_password_encoded, "UTF-16LE");

$entry = ["unicodePwd" => $new_password_encoded];

// Attempt to change the password
//if (ldap_modify($ldap_conn, $user_dn, $entry)) {
if (ldap_mod_replace($ldap_conn,$user_dn,$entry)){
echo "Password changed successfully.";
} else {
echo "Error changing password.";
}
} else {
echo "Current password is incorrect.";
}
} else {
echo "User not found.";
}

ldap_unbind($ldap_conn);


Подробнее здесь: https://stackoverflow.com/questions/786 ... ng-php-8-3
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»