OTRS beietet von "Haus aus" die Möglichkeit Agenten / Kunden über externe Datenbanken und Verzeichnisse zu authentifizieren.
Die Passworte können dabei mittels Crypt verschlüsselt, als MD5 Hash abgelegt oder im Klartext (plain) vorhanden sein.
Mein Problem war, dass in unserer externen Customer DB die Customer Passworte als SHA1 Hashes gespeichert waren. Die Datenbank konnte ich nicht (ohne grössere Implikationen) auf MD5 umstellen, so dass mir nichts anderes ürig blieb, als einen Workaround zu suchen.
Ich habe im OTRS Bugzilla einen Feature Request gestellt, so dass die Funktion (hoffentlich) irgendwann offiziell von OTRS unterstützt wird.
http://bugs.otrs.org/show_bug.cgi?id=2774
In der Zwischenzeit habe ich mir mit der nachfolgenden Anpassung geholfen.
Doch zuerst natürlich der Hinweis: Alle Änderungen gehen auf eigenes Risiko! Immer eine Sicherheitskopie des betreffenden Files vor den Änderungen machen! Ich bin kein Profi Programmierer, die Lösung kann man sicherlich auch eleganter realisieren.
Diese Änderungen betreffen nur den CustomerAuth Teil, also nur das Anmelden der Kunden auf dem Webinterface.
zusätzlich zu installierendes Perl Modul:
- Digest::SHA1
Änderungen im File: /opt/otrs/Kernel/System/CustomerAuth/DB.pm
zusätzlich am Anfang der Datei nach "use strict;"
use Digest::SHA1 qw(sha1_hex);
und in den Passwort Check Block:
# crypt given pw
my $CryptedPw = '';
my $Salt = $GetPw;
# md5 pw
if ($Self->{CryptType} eq 'plain') {
$CryptedPw = $Pw;
}
# diese drei Zeilen einfügen:
elsif ($Self->{CryptType} eq 'sha1') {
$CryptedPw = sha1_hex($Pw);
}
elsif ($GetPw !~ /^.{13}$/) {
# strip Salt
$Salt =~ s/^\$.+?\$(.+?)\$.*$/$1/;
$CryptedPw = unix_md5_crypt($Pw, $Salt);
}
und schlussendlich natürlich eine entsprechende Definition in der Config.pm:
$Self->{'Customer::AuthModule::DB::CryptType6'} = 'sha1';
Obwohl das problemlos funktioniert, wird bei einem Update von OTRS das DB.pm File möglicherweise ersetzt und damit die Funktion unwirksam, was dazu führt, dass sich die Kunden nicht mehr mit ihrem sha1-gehashten Passwort einloggen können.
Ich hoffe, dass es dem Einen oder Anderen hilft oder einen Lösungsansatz gibt.
Gruss,
noeggeL
zusätzliche Customer Authentifizierung mittels sha1 hash
-
- Znuny guru
- Posts: 2189
- Joined: 08 Dec 2005, 17:01
- Znuny Version: 5.0.x
- Real Name: André Bauer
- Company: Magix Software GmbH
- Location: Dresden
- Contact:
zusätzliche Customer Authentifizierung mittels sha1 hash
Füg deine Anpassung doch einfach noch als Patch mit in den Bugreport ein und änder den Titel auf "[Patch] add sha1 for additional auth method".
Das sollte die Chancen auf Integration deutlich erhöhen
Ich steh noch vor nem ähnlichen Problem, da ich irgendwann noch ne Authentifizierung gegen eine XML Schnittstelle machen muss, obwohl dahinter auch nur ne MySQL Datenbank liegt
Wird aber sicher etwas mehr Arbeit werden...
Das sollte die Chancen auf Integration deutlich erhöhen
Ich steh noch vor nem ähnlichen Problem, da ich irgendwann noch ne Authentifizierung gegen eine XML Schnittstelle machen muss, obwohl dahinter auch nur ne MySQL Datenbank liegt
Wird aber sicher etwas mehr Arbeit werden...
Prod: Ubuntu Server 16.04 / Zammad 1.2
DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!
OtterHub.org
DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!
OtterHub.org