![](/img/trans.png)
[英]Change Password in Active Directory using LDAP/PHP/IIS/SSL
[英]PHP - LDAP change user passwords in Active Directory without using administrator account
我正在構建使用LDAP針對MS Active Directory進行身份驗證的應用程序。 我們有一個密碼政策,其中用戶密碼會過期。
如何通過PHP中的ldap在不使用AD管理員的情況下設置用戶密碼?
我見過很多方法,但所有方法都使用管理員帳戶,從我的角度來看,這是一種安全風險。
unicodePwd
屬性的文檔描述了兩種更改密碼的方法:
如果我對您的理解正確,那么您將避免使用選項2。因此,訣竅將是在同一請求中發送“添加”和“刪除”請求。 為此,您可以使用ldap_modify_batch
。 實際上,在文檔頁面本身上有一個示例 :
<?php
function adifyPw($pw)
{
return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"');
}
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=ad,dc=example,dc=com";
$modifs = [
[
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_REMOVE,
"values" => [adifyPw("Tr0ub4dor&3")],
],
[
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => [adifyPw("correct horse battery staple")],
],
];
ldap_modify_batch($connection, $dn, $modifs);
請注意,您可能必須通過安全連接(LDAPS,通常在端口636上)進行連接,AD才能允許此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.