使用相同的密码将现有Django用户迁移到OpenLDAP

时间:2016-11-07 08:06:46

标签: django hash openldap migrate pbkdf2

我正在使用Django的User模型作为身份验证后端。现在我想将所有用户迁移到OpenLDAP服务器。我相信如果我可以使OpenLDAP使用相同的哈希算法和密码字符串格式,我只需从Django复制密码哈希,当我插入OpenLDAP时,用户就可以使用相同的用户名和密码登录。

我的Django应用程序正在使用PBKDF2哈希算法,因此我要做的是将OpenLDAP配置为使用此模块使用PBKDF2:https://github.com/hamano/openldap-pbkdf2

Django中的密码哈希将是:

pbkdf2_sha256 $ 12000 $ MySaltString $ somehashstring ...

我尝试了很多次但是无法使用OpenLDAP。

如果你们能给我一些提示,那将是很棒的。

非常感谢,

的Trinh

1 个答案:

答案 0 :(得分: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])]})