AW: [otrs-de] Kundendaten inverschiedenenTabellen(externeAuthentifizierung)
Hallo Josy
Mein Problem ist, dass in der externen Customer DB in der Tabelle1 der Username und das Passwort, in der Tabelle2 Name, Vorname, Anrede etc, in der Tabelle3 dann Telefonnummern und email Adressen und in der Tabelle4 die customer_id gespeichert sind. Da OTRS mindestens username/password, customer_id und email benötigt um zu authentisieren (und das innerhalb einer Definition) ist eine Verteilung auf mehrere authmodul Konfigurationen nicht möglich.
Ich habe nun aber einen anderen Weg gefunden, das Problem zu lösen: Ich habe eine "View" erstellt, die in meiner externen Customer DB die Datenzusammensucht. Die Abfrage in OTRS habe ich dann auf die "View" gelegt, die sich ja wie eine normale Tabelle ansprechen lässt. So habe ich aus Sicht OTRS eine Tabelle, die ich problemlos in der Konfig unterbringen kann.
Bleibt nur noch das bereits (bisher erfolglos) gepostete Problem der Authentifizierung gegen einen SHA1 Hash anstelle crypt, md5 oder plain.
Trotdem vielen Dank für die Ideen. Gruss Bruno
-----Ursprüngliche Nachricht----- Von: otrs-de-bounces@otrs.org [mailto:otrs-de-bounces@otrs.org] Im Auftrag von it-news (Josef Lahmer) Gesendet: Donnerstag, 28. Februar 2008 12:59 An: User questions and discussions about OTRS.org in German Betreff: AW: [otrs-de] Kundendaten inverschiedenenTabellen(externeAuthentifizierung)
hi bruno,
Das Problem ist, dass die Daten auf mehrere Tabellen in der MySQL-DB aufgeteilt sind. Das bedeutet, dass die zur Authentifizierung eines Kundenusers notwendigen Werte nicht in einer einzelnen Tabelle sondern auf (mindestens) zwei verteilt sind. Für das Mapping der verschiedenen Felder kann ich aber nur eine Tabelle angeben. (Nach der Datenbank Konfiguration unter "Params =>" "Table => 'customer_user'
du kannst ja bis zu 10 customer=>authenticationmodule hinterlegen. schon folgendes probiert?
die erste läßt du deflaut für otrs $Self->{'AuthModule1'} = 'Kernel::System::Auth::DB';
die 2. dann angepasst könnte so in der art aussehen:
$Self->{'Customer::AuthModule2'} = 'Kernel::System::Auth::DB'; $Self->{Customer::AuthModule::DB::Table2} = 'tabelle2'; $Self->{Customer::AuthModule::DB::CustomerKey2} = 'tabelle2'; CustomerPassword2, DSN, user, password .. usw..
hab einfach in den quellcode der datei geschaut: usr/share/otrs/Kernel/System/CustomerAuth/DB.pm
so kannst die div. paramter raussuchen. ich habs selbst noch nicht probiert, aber vom ansatz könnte das so klappen. wäre interessant wenn die config so bei dir funktioniert?
lg josy
auszug DB.pm: # config options $Self->{Table} = $Self->{ConfigObject}->Get('Customer::AuthModule::DB::Table'.$Param{Count}) || die "Need CustomerAuthModule::DB::Table$Param{Count} in Kernel/Config.pm!"; $Self->{Key} = $Self->{ConfigObject}->Get('Customer::AuthModule::DB::CustomerKey'.$Param{Count}) || die "Need CustomerAuthModule::DB::CustomerKey$Param{Count} in Kernel/Config.pm!"; $Self->{Pw} = $Self->{ConfigObject}->Get('Customer::AuthModule::DB::CustomerPassword'.$Param{Count}) || die "Need CustomerAuthModule::DB::CustomerPw$Param{Count} in Kernel/Config.pm!"; $Self->{CryptType} = $Self->{ConfigObject}->Get('Customer::AuthModule::DB::CryptType'.$Param{Count})
if ($Self->{ConfigObject}->Get('Customer::AuthModule::DB::DSN'.$Param{Count})) { $Self->{DBObject} = Kernel::System::DB->new( LogObject => $Param{LogObject}, ConfigObject => $Param{ConfigObject}, MainObject => $Param{MainObject}, DatabaseDSN => $Self->{ConfigObject}->Get('Customer::AuthModule::DB::DSN'.$Param{Count}), DatabaseUser => $Self->{ConfigObject}->Get('Customer::AuthModule::DB::User'.$Param{Count}), DatabasePw => $Self->{ConfigObject}->Get('Customer::AuthModule::DB::Password'.$Param{Count}), Type => $Self->{ConfigObject}->Get('Customer::AuthModule::DB::Type'.$Param{Count}) || '', ) || die "Can't connect to ".$Self->{ConfigObject}->Get('Customer::AuthModule::DB::DSN'.$Param{Count}); # remember that we have the DBObject not from parent call $Self->{NotParentDBObject} = 1; }
--------------------------------------- 400 Tonnen! Diese Menge an CO2 haben unsere Kunden bis heute durch klimaneutrales Drucken ausgeglichen. Zeigen auch Sie Ihr Engagement in Sachen Klimaschutz. Mit dem greenprint*-Label auf Ihren Druckprodukten. http://www.greenprint.at
_______________________________________________ OTRS-de Mailingliste: otrs-de - Webpage: http://otrs.org/ Archiv: http://lists.otrs.org/pipermail/otrs-de/ Listenabo verwalten: http://lists.otrs.org/cgi-bin/listinfo/otrs-de/ Support oder Consulting fuer Ihr OTRS System? =http://www.otrs.com/
participants (1)
-
Klaus Bruno