2016-11-07 18 views
0

Я использую модель пользователя Django в качестве сервера аутентификации. Теперь я хочу перенести всех пользователей на сервер OpenLDAP. Я считаю, что если я могу заставить OpenLDAP использовать один и тот же алгоритм хэширования и формат строки пароля, я могу просто скопировать хэш-код пароля из Django, пользователи смогут просто войти в систему, используя те же имя пользователя и пароль, когда я подключу OpenLDAP.Перенести существующих пользователей Django в OpenLDAP с тем же паролем

Мои Джанго с помощью алгоритма hasing PBKDF2 приложения в так что я пытаюсь сделать, это настроить 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. –