2016-06-10 167 views
0

由於我的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密碼輸入正確嗎?

事情我已經嘗試添加一個新的密碼:

  1. 完全相同添加相同的密碼哈希上面的userPassword 作爲顯示 - >約束違規錯誤
  2. 試圖查找密碼算法NAS'源代碼。這揭示了以下行:rootpw {CRYPT}$1$CL$0fRYicA9KsmHaiV1SRj5q/。 簡單地使用這個作爲新密碼也不起作用。
  3. 查找不同的PHP函數,就像等同於Linux命令ldappasswd一樣,但這似乎並不適用於PHP。

當然,我更喜歡使用像SSHA-512這樣的合適的哈希/加密機制,但我不確定Directory Server不支持什麼和什麼。

我真的很希望有人能讓我更進一步!如果我要進一步澄清事情,請讓我知道。

回答

0

最終,解決方案是一直向Synology提問,尋求解決方案。他們在更新到v2.1-2428之前將密碼策略更改回版本,現在它再次運行。

如果還有其他可用的解決方案與最新版本的OpenLDAP兼容,將不勝感激。

0

嘗試更改密碼時的約束違規看起來像是實施Directory Server密碼策略。 目錄服務器日誌應包含有關該錯誤的更多詳細信息,但可能已將該策略設置爲拒絕已使用的密碼(如最後3個密碼)。目錄服務器密碼策略可能對密碼實施許多檢查和限制:長度,不重複使用,字符集變化,無明文字符... 您可能需要檢查Synology目錄服務器文檔或發行說明以瞭解詳細信息默認的密碼策略。

+0

感謝您的回覆。在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

+0

嗯,看看Synology DSM 6.0的說明,密碼強度規則已經爲用戶添加並啓用。 https://www.synology.com/en-global/knowledgebase/DSM/help/DirectoryServer/ldap_user。 我沒有在我的NAS上啓用此功能,並且我也不使用OpenLDAP ......但似乎DSM上有一個選項可用於在登錄失敗時獲得更好的診斷。你可能想嘗試一下。 –

+0

是的,但正如我所說我沒有任何規則被激活,所以除了Synology在引擎蓋下改變了某些東西的可能性之外,這不會導致我可以改變以使其起作用,您是否認爲?您的意思是選項「登錄失敗時顯示更多信息」?這意味着您在DSM上登錄時會收到錯誤消息。這不是我說的問題:我想添加userPassword屬性,並在PHP中得到約束違規錯誤。 – SJDS