2015-07-20 66 views
0

我想寫一個閃亮的PHP服務,將允許用戶更改他們的密碼。 我已經開始使用ldap_modify函數。一切正常,我通過dn和新用戶密碼(或其散列),用戶可以成功登錄後。更改ldap密碼與phpldap考慮分配政策

的問題是,該用戶分配一個口令策略,禁止密碼長度< 2.通過這樣的密碼(或散列)後ldap_modify我沒有得到任何錯誤,異常,等等。

爲什麼不根據分配的密碼策略檢查密碼?

作爲一個臨時的解決方案,我可以閱讀策略項,檢查手動長度...

+0

第1步。查看您的策略並記錄當前的強制執行情況,並相應地修改您的代碼。第2步。利潤...但是,如果我可以查詢,爲什麼你允許用戶通過PHP更改密碼? –

+0

謝謝。所以你建議手動檢查執行? 我的項目使用LDAP自動化,用戶必須有更改密碼的選項 –

+0

確實是暫時的。你可以考慮使用一些已經創建的LDAP管理包,這些包可以在github上找到。 https://github.com/adldap/adLDAP-從最初的瞥見看起來很有希望 –

回答

0

有一個叫ldappasswd一個命令行工具(在某些Linux的發行版,它被稱爲slappasswd IIRC),它應該被用來生成密碼哈希。此工具IIRC根據爲給定用戶設置的密碼策略驗證輸入的密碼。

當您手動更改密碼值時,LDAP服務器無法檢查它,因爲它與所有其他屬性一樣,因此您可以在不受服務器干擾的情況下對其進行更改。而當你設置一個散列值時,LDAP-Server無法知道密碼是否與密碼策略的指令相匹配,因爲它實際上從未真正看到密碼處於非哈希狀態。因此,您必須在散列密碼之前自行檢查策略

0

解決方案:所以問題是我測試的策略的屬性pwdCheckQuality設置爲0,它禁用了所有檢查...第二個問題是LDAP中的管理員用戶忽略密碼策略 - 我必須對簡單的所有測試用戶