ldap_exop_passwd

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_passwdОбёртка для расширенной операции PASSWD

Описание

function ldap_exop_passwd(
    LDAP\Connection $ldap,
    string $user = "",
    #[\SensitiveParameter]string $old_password = "",
    #[\SensitiveParameter]string $new_password = "",
    array &$controls = null
): string|bool

Функция выполняет расширенную операцию PASSWD.

Список параметров

ldap

Экземпляр класса LDAP\Connection, который возвращает функция ldap_connect().

user

Уникальное имя (DN) пользователя, для которого меняется пароль.

old_password
Старый пароль. В зависимости от конфигурации может быть опущен.
new_password

Новый пароль. Может быть опущен, либо задан пустым для автогенерации пароля.

controls

Если для параметра задали значение, функция передаст с запросом запрос парольной политики заполнит это поле массивом управляющих констант LDAP, которые вернул запрос.

Возвращаемые значения

Функция возвращает новый пароль, если параметр new_password не задали или задали пустым. Иначе функция возвращает true или false, в зависимости от успешности выполнения.

Список изменений

Версия Описание
8.1.0 Параметр ldap теперь принимает объект LDAP\Connection; раньше параметр ждал ресурс (resource) ldap link .
8.0.0 Параметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
7.3.0 Добавили поддержку параметра controls

Примеры

Пример #1 Расширенная операция PASSWD

<?php

$ds = ldap_connect("localhost");  // Предполагается, что LDAP-сервер запустили локально

if ($ds) {
    // Привязываемся к нужному DN-имени
    $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
    if (!$bind) {
      echo "Невозможно привязаться к LDAP-серверу";
      exit;
    }

    // Передаём PASSWD EXOP для смены пароля пользователя на новый случайный
    $genpw = ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", "secret");
    if ($genpw) {
      // Задаём для привязки новый пароль
      $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", $genpw);
    }

    // Возвращаем старый пароль «secret»
    ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", $genpw, "secret");

    ldap_close($ds);
} else {
    echo "Невозможно соединиться с LDAP-сервером";
}

?>

Смотрите также

  • ldap_exop() - Выполняет расширенную операцию
  • ldap_parse_exop() - Разбор результирующего объекта выполнения расширенной операции LDAP