PASSWD 拡張オペレーションのヘルパ

# 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_connect() が返す LDAP\Connection クラスのインスタンス。

`user`

  パスワードを変更するユーザーの dn

`old_password`
  このユーザーの古いパスワード。 サーバーの設定によっては省略可能です。
`new_password`

  このユーザーの新しいパスワード。 生成されたパスワードがある場合は、空にするか省略できます。

`controls`

  指定された場合は、パスワードポリシーをリクエストするコントロールがリクエストと一緒に送信されます。 その場合、この値は リクエストと一緒に送信する LDAP コントロール の配列 で埋められます。

### 戻り値

`new_password` が空だったり省略されたりした場合は、 生成されたパスワードが返されます。 そうでなければ、成功時に `true` 、失敗時に `false` が返ります。

### 変更履歴

バージョン | 説明
--- | ---
8.1.0 | 引数 `ldap` は、LDAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な `ldap link` resource を期待していました。
8.0.0 | `controls` は、nullable になりました。 これより前のバージョンでは、デフォルト値が `[]` でした。
7.3.0 | `controls` のサポートが追加されました。

### 例

例1 PASSWD 拡張オペレーション

    <?php
    $ds = ldap_connect("localhost");  // assuming the LDAP server is on this host

    if ($ds) {
        // bind with appropriate dn to give update access
        $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
        if (!$bind) {
          echo "Unable to bind to LDAP server";
          exit;
        }

        // use PASSWD EXOP to change the user password for a generated one
        $genpw = ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", "secret");
        if ($genpw) {
          // use the generated password to bind
          $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", $genpw);
        }

        // set the password back to "secret"
        ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", $genpw, "secret");

        ldap_close($ds);
    } else {
        echo "Unable to connect to LDAP server";
    }
    ?>

### 参考

- ldap_exop() - 拡張されたオペレーションを実行する
- ldap_parse_exop() - LDAP拡張オペレーションの結果オブジェクトをパースする

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open