Мне интересно, столкнулся ли кто -нибудь здесь на той же проблеме и/или имеет решение для этого. Я раньше имел дело с 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
Изменить пароль Ad Server Ad Windows 2022 с помощью PHP 8.3 ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1745532658
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);
Подробнее здесь: [url]https://stackoverflow.com/questions/78635294/change-windows-2022-server-ad-password-using-php-8-3[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия