2016-11-07 57 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。 –

相关问题