[英]LDAP CHANGE PASSWORD PHP
我想使用PHP LDAP在Windows Active Directory上更改用戶密碼[unicodePwd]。
我正在通過PHP LDAP使用Windows Active Directory。
我對此沒有任何問題。
我收集數據沒有任何問題。
我使用ldap_mod_replace或ldap_modify更改屬性沒有任何問題
除了“ unicodePwd”。
*請注意,這有效
$user['telephonenumber'] = '1234567890';
*請注意,這不起作用
$user['unicodePwd'] = mb_convert_encoding('my_new_password', "UTF-16LE");
//代碼
$result = ldap_modify($ldap, $dn, $user);
return ldap_error($ldap);
//代碼
//更改unicodePwd時出錯
ldap_modify(): Modify: Server is unwilling to perform
//電話號碼沒有錯誤
我無法將我的服務器設置為在ssl上具有ldap。 已經嘗試安裝AD CS,到目前為止沒有任何效果。 還在配置我的服務器有關安裝用於SSL over LDAP的CA(證書頒發機構)的任何想法嗎?
已經設置了LDAP OVER SSL,我也可以使用ldap
cmd-> ldp; 端口389,帶有ssl的636很好。
但是當我使用端口636或ldaps:// servername在我的php中運行它時,這是錯誤,
ldap_bind(): Unable to bind to server: Can't contact LDAP server
您需要建立安全連接才能修改密碼 (以及其他可能與安全相關的選項)。
在調用ldap_bind()
之前添加以下內容:
ldap_start_tls($ldap);
即使您不嘗試更改密碼,這也是一個好主意,否則您的綁定操作是明文並且可以被嗅探。
如果看到此錯誤:
警告:ldap_start_tls():無法啟動TLS:連接錯誤...
您可以在調用ldap_connect
之前添加以下行來解決此問題:
putenv('LDAPTLS_REQCERT=never');
警告 :這將禁用檢查LDAP服務器證書的有效性! 理想情況下,您應該將服務器證書(或其簽名CA)添加到受信任的存儲中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.