我正在使用Django的User模型作为身份验证后端。现在我想将所有用户迁移到OpenLDAP服务器。我相信如果我可以使OpenLDAP使用相同的哈希算法和密码字符串格式,我只需从Django复制密码哈希,当我插入OpenLDAP时,用户就可以使用相同的用户名和密码登录。
我的Django应用程序正在使用PBKDF2哈希算法,因此我要做的是将OpenLDAP配置为使用此模块使用PBKDF2:https://github.com/hamano/openldap-pbkdf2
Django中的密码哈希将是:
pbkdf2_sha256 $ 12000 $ MySaltString $ somehashstring ...
我尝试了很多次但是无法使用OpenLDAP。
如果你们能给我一些提示,那将是很棒的。
非常感谢,
的Trinh
答案 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])]})