2016-11-07 83 views
0

我使用Django的用戶模型作爲身份驗證後端。現在我想將所有用戶遷移到OpenLDAP服務器。我相信如果我可以讓OpenLDAP使用相同的哈希算法和密碼字符串格式,我可以複製Django的密碼哈希,當我插入OpenLDAP時,用戶將只能使用相同的用戶名和密碼登錄。使用相同的密碼將現有的Django用戶遷移到OpenLDAP

我Django應用程序的使用PBKDF2 hasing算法所以我想要做的是OpenLDAP的配置爲使用PBKDF2使用此模塊:https://github.com/hamano/openldap-pbkdf2

在Django的密碼哈希將是這樣的:

pbkdf2_sha256 $ 12000 $ MySaltString $ somehashstring ...

我嘗試了很多次,但無法使其與OpenLDAP一起使用。

如果你們可以給我一些提示,這將是非常好的。

非常感謝,

鄭氏

回答

1

如果您正在使用python3工作,你可以用醃製機制提供ldap3 package on this page http://ldap3.readthedocs.io/standard.html

from ldap3 import HASHED_SALTED_SHA 
from ldap3.utils.hashed import hashed 

hashed_password = hashed(HASHED_SALTED_SHA, 'new_password') 
connection.modify('cn=user1,o=test', {'userPassword': [(MODIFY_REPLACE,[hashed_password])]}) 
+0

所以,如果我是正確的,你的樣品腳本試圖將用戶密碼更新爲OpenLDAP。但是,我在這裏要做的是將散列的密碼從我的Django應用程序複製到OpenLDAP,然後用戶可以從那裏進行身份驗證。 –

+0

在創建用戶時,您可以在openLDAP中設置密碼,因此不需要從django應用程序複製密碼。 – Dharmik

+0

感謝您的建議。但我不想創建新用戶。我想將所有用戶遷移到OpenLDAP。 –

相關問題