2016-11-07 1 views
0

Ich benutze Djangos Benutzermodell als Authentifizierungs-Backend. Jetzt möchte ich alle Benutzer auf einen OpenLDAP-Server migrieren. Ich glaube, wenn ich OpenLDAP den gleichen Hashing-Algorithmus und Passwort-String-Format verwenden kann, kann ich einfach den Passwort-Hash von Django kopieren, Benutzer können sich einfach mit demselben Benutzernamen und Passwort einloggen, wenn ich OpenLDAP einstecke.Bestehende Django-Benutzer mit demselben Passwort nach OpenLDAP migrieren

Meine Django App mit PBKDF2 Häsing Algorithmus so, was ich versuche zu tun, OpenLDAP konfigurieren PBKDF2 mit diesem Modul zu verwenden: https://github.com/hamano/openldap-pbkdf2

Die Passwort-Hash in Django wie:

pbkdf2_sha256 12000 $ $ MySaltString $ somehashstring ...

Ich habe es viele Male versucht, konnte aber nicht mit OpenLDAP arbeiten.

Es wäre toll, wenn Sie mir ein paar Tipps geben könnten.

Vielen Dank,

Trinh

Antwort

1

Wenn Sie mit python3 arbeiten, können Sie gesalzen Mechanismus auf 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

So bereitgestellt verwenden, wenn ich mich nicht irre, Skript Ihre Probe versucht um das Benutzerpasswort für OpenLDAP zu aktualisieren. Aber was ich hier versuche ist, das Hash-Passwort von meinen Django-Apps nach OpenLDAP zu kopieren und dann kann der Benutzer von dort authentifiziert werden. –

+0

Zum Zeitpunkt der Benutzererstellung können Sie das Passwort in openLDAP einstellen, so dass Sie das Passwort nicht aus Ihrer django App kopieren müssen. – Dharmik

+0

Danke für den Vorschlag. Aber ich möchte keinen neuen Benutzer erstellen. Ich möchte alle meine Benutzer zu OpenLDAP migrieren. –