由於我的LDAP服務器中的最新更新(在運行DSM 6的Synology NAS上使用Directory Server v2.1-2428,最新的版本)我無法更改密碼(或新用戶包含密碼)使用PHP。使用PHP更改密碼或在LDAP中添加用戶
更新之前,我使用了具有userPassword屬性的PHP ldap_add或ldap_mod。但是,現在,當嘗試創建新的userPassword時,我收到錯誤消息Warning: ldap_add(): Add: Constraint violation
。
在創建通過NAS的管理GUI一個新的用戶,我可以查找的userPassword項,出現在如下數據庫(稍加修改隱私):{crypt}$6$e49q9SvU$.pSl1C8Ew6WTu24yipUI8kjx7qv2GxWhKAUOBmuAVeRmJ1JV/WvWriVYZJeDDtBxekeepatdaKl0ulQdjsmCP.
這意味着數據庫接受SSHA -512密碼輸入正確嗎?
事情我已經嘗試添加一個新的密碼:
- 完全相同添加相同的密碼哈希上面的userPassword 作爲顯示 - >約束違規錯誤
- 試圖查找密碼算法NAS'源代碼。這揭示了以下行:
rootpw {CRYPT}$1$CL$0fRYicA9KsmHaiV1SRj5q/
。 簡單地使用這個作爲新密碼也不起作用。 - 查找不同的PHP函數,就像等同於Linux命令ldappasswd一樣,但這似乎並不適用於PHP。
當然,我更喜歡使用像SSHA-512這樣的合適的哈希/加密機制,但我不確定Directory Server不支持什麼和什麼。
我真的很希望有人能讓我更進一步!如果我要進一步澄清事情,請讓我知道。
感謝您的回覆。在Directory Server的高級設置中,有多種選項可以設置密碼策略。但是,我沒有激活它們,所以對密碼選擇沒有限制。 日誌(/var/log/slapd.log)顯示: 'Jun 10 21:12:33 IFMSA-NL slapd [29121]:DIGEST-MD5通用機械免費 Jun 10 21:13:05 IFMSA-NL slapd [10237]:[main.c:736] @(#)$ OpenLDAP:slapd 2.4.40(May 25 2016 17:16:08)$ root @ build1:/source/openldap-2.4。x/servers/slapd' 但是,從我嘗試添加用戶密碼的那一刻起就沒有日誌條目,不知道爲什麼 – SJDS
嗯,看看Synology DSM 6.0的說明,密碼強度規則已經爲用戶添加並啓用。 https://www.synology.com/en-global/knowledgebase/DSM/help/DirectoryServer/ldap_user。 我沒有在我的NAS上啓用此功能,並且我也不使用OpenLDAP ......但似乎DSM上有一個選項可用於在登錄失敗時獲得更好的診斷。你可能想嘗試一下。 –
是的,但正如我所說我沒有任何規則被激活,所以除了Synology在引擎蓋下改變了某些東西的可能性之外,這不會導致我可以改變以使其起作用,您是否認爲?您的意思是選項「登錄失敗時顯示更多信息」?這意味着您在DSM上登錄時會收到錯誤消息。這不是我說的問題:我想添加userPassword屬性,並在PHP中得到約束違規錯誤。 – SJDS