Kundenpasswort in Datenbank speichern

Hilfe zu Znuny Problemen aller Art
Locked
Urbain
Znuny newbie
Posts: 35
Joined: 13 Jan 2011, 16:09
Znuny Version: 3.0.4

Kundenpasswort in Datenbank speichern

Post by Urbain »

Hallo,

ich versuche eben alle relevanten Kunden unserer Kundendatenbank in unsere OTRS-Datenbank zu speichern. Ich mache das über eine Procedure in der Datenbank. Über diese werden die Insert-Statements ausgeführt, um einen neuen Kunden anzulegen. Das wird also alles über SQL gemacht und nicht über die Oberfläche, weil es sich um ein paar hundert Leute handelt. Meine Frage hierzu ist nun wie ich das Passwort abspeichern soll. Dieses wird ja verschlüsselt. Angenommen das Passwort lautet 123User! wie komme ich dann zu dem Wert, der in der Tabelle Customer_User gespeichert werden soll, damit sich der Kunde mit ebenjenen Passwort anmelden kann?

Danke für eure Zeit.
Martis
Znuny newbie
Posts: 18
Joined: 07 Jan 2011, 13:39
Znuny Version: 30900

Re: Kundenpasswort in Datenbank speichern

Post by Martis »

Hallo Urbain,

geh mal in die SysConfig.
Dort gehst du in die Einstellungen für Frontend::Customer::Auth

Dort kannst du einstellen, welche Variante dein Passwort sein sollte.
Standard-Einstellung ist MD5.

Ich würde dir auch empfehlen, es auf md5 zu stellen. Die Option unverschlüsselt ist fahrlässig.

Die Verschlüsselung kannst du sogar direkt mit deinem Insert Befehl vornehmen:

Beim Insert umklammerst du einfach das Textfeld, in dem das Passwort stehst und setzt ein md5 davor.

Beispiel:

INSERT INTO customer_user (name,vorname,passwort,email) VALUES ('mustermann','max',MD5('123User!'),'max@mustermann.de');

Liebe Grüße
martis
PLease delete this account :-) Thx
Urbain
Znuny newbie
Posts: 35
Joined: 13 Jan 2011, 16:09
Znuny Version: 3.0.4

Re: Kundenpasswort in Datenbank speichern

Post by Urbain »

Hallo,

danke für deine Hilfe. Allerdings glaube ich, ist es mit MD5('irgendwas') alleine nicht getan. Ich führe zum Beispiel
folgenden Code aus:

Code: Select all

insert into test.foo values(md5('123User!'));
select * from test.foo;
In der Tabelle ist dann der Wert '958ab32ed6bb9fc202f501a961ac3617' gespeichert. Wenn ich allerdings über die Oberfläche einem Benutzer das Passwort '123User!' zuweise, dann wird in der Tabelle nicht die oben genannte Prüfsumme gespeichert. Ich habe das mal für die beiden Testbenutzer 'peter.pinsel' und 'paula.pflaume' gemacht. Gespeichert wird hier dann '$1$peter.pi$N2eyyt8fu6eO09ztgoIRc.' und '$1$paula.pf$fsXbonkgMB385F0w4EluW1'. Es hat also den Anschein, als würde bei der Berechnung der Prüfsumme nicht nur das Passwort herangezogen werden. Auch der Login-Name wird miteinbezogen. Die Prüfsumme wird aber nicht einfach an '$1$<login>$' angehängt, weil ja die nachfolgende Zeichenketten nicht ident sind. Ich weiß nun nicht wie ich hier vorgehen soll, also wie ich nun zu diesen Prüfsummen komme.

Für weitere Hilfe bin ich sehr dankbar :)
Urbain
Znuny newbie
Posts: 35
Joined: 13 Jan 2011, 16:09
Znuny Version: 3.0.4

Re: Kundenpasswort in Datenbank speichern

Post by Urbain »

Ich machs nur ungern, aber ich schiebe den Beitrag wieder ein bisschen nach oben. Weiß denn keiner Rat in dieser Sache? Wäre wirklich wichtig.

Vielen Dank schonmal im Voraus.

EDIT: Ich habe nun ein bisschen herumprobiert und das Ändern des verwendeten Algorithmus ist die Lösung. Wenn man beispielsweise SHA1 verwendet, dann wird standardmäßig kein Salt verwendet, was das Ergebnis nachvollziehbar macht. Zwar sollte man ja immer einen Saltwert verwenden, aber wenn es undurchsichtig ist, wie hier nun genau vom System vorgegangen wird, ist es schwierig Passwörter in die OTRS-Datenbank zu übertragen, bzw. über SQL anzulegen. Also für alle die dasselbe Problem haben, mit SHA1 funktioniert alles wie erwartet.
Locked