Customeranmeldung Panic! No UserData!!!

Hilfe zu Znuny Problemen aller Art
Locked
allsa2
Znuny newbie
Posts: 6
Joined: 14 Feb 2008, 17:47

Customeranmeldung Panic! No UserData!!!

Post by allsa2 »

Hallo

Seit drei Tagen versuche ich nun die LDAP Authenifizierung für die Customer zu aktivieren.


Endlich heute Vormittag habe ich es dann geschaft, dass mindestens mal eine LDAP-Abfrage stattfindet. Nun kommt aber folgende Meldung im customer.pl:

Panic! No UserData!!!

Mit diesem Problem bin ich nicht alleine, aber bis jetzt hat mich noch kein anderer Forumsbeitrag oder das liebe Google auf eine Lösung gebracht, darum poste ich mal hier den LDAP-Teil von meiner config.pm

Code: Select all

# UserSyncLDAPMap
# (map if agent should create/synced from LDAP to DB after login) $Self->{UserSyncLDAPMap} = { # DB -> LDAP Firstname => 'givenName', Lastname => 'sn', Email => 'mail', };


    # ---------------------------------------------------- #
    # Customer Authentifizierung via LDAP                   #
    # ---------------------------------------------------- #
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'vocsrv21.voctest.ch';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'ou=Benutzer,dc=voctest,dc=ch';
    #$Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=admin2,ou=Benutzer,dc=voctest,dc=ch';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'Password1';
    #$Self->{'Customer::AuthModule::LDAP::UserSuffix'} = '@voctest.ch';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
    #$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=Domänen-Benutzer,CN=Users,dc=voctest,dc=ch';
    $Self->{'Customer::AuthModule::LDAP::Params'} = {
    #   port => 389,
    #   timeout => 120,
    #   async => 0,
        version => 3,
        SourceCharset => 'utf-8',
       DestCharset => 'iso8859-1',
    };


   # ---------------------------------------------------- #
   # customer Auth                                        #
   # ---------------------------------------------------- #


   $Self->{CustomerUser} = {
       Name => 'LDAP Datenquelle',
       Module => 'Kernel::System::CustomerUser::LDAP',
       Params => {
           Host => 'vocsrv21.voctest.ch', 
           BaseDN => 'ou=Benutzer,dc=voctest,dc=ch',
           SSCOPE => 'sub',
      UserDN => 'cn=admin2,ou=Benutzer,dc=voctest,dc=ch',
      UserPW => 'Password1',
           Params => {
               port => 389,
               timeout => 120,
               async => 0,
               version => 3,
           },
       },
       CustomerKey => 'sAMAccountName',
       CustomerID => 'mail',
       CustomerUserListFields => ['sn', 'cn', 'mail'],
       CustomerUserSearchFields => ['sAMAccountName', 'cn', 'sn', 'mail'],
       CustomerUserSearchPrefix => ,
       CustomerUserSearchSuffix => '*',
       CustomerUserSearchListLimit => 250,
       CustomerUserPostMasterSearchFields => ['mail'],
       CustomerUserNameFields => ['givenname', 'sn'],
       CustomerUserExcludePrimaryCustomerID => 0,
       AdminSetPreferences => 0,
       Map => [
           [ 'UserSalutation', 'Title',      'title',           1, 0, 'var', , 0 ],
           [ 'UserFirstname',  'Firstname',  'cn',              1, 1, 'var', , 0 ],
           [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', , 0 ],
           [ 'UserLogin',      'Username',   'sAMAccountName',             1, 1, 'var', , 0 ],
           [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', , 0 ],
           [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', , 0 ],
           [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', , 0 ],
           [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', , 0 ],
           [ 'UserComment',    'Comment',    'description',     1, 0, 'var', , 0 ],
       ],
   };
Danke jetzt schon für alle Hinweise. Allsa
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Customeranmeldung Panic! No UserData!!!

Post by jojo »

was sagt das Logfile?
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
allsa2
Znuny newbie
Posts: 6
Joined: 14 Feb 2008, 17:47

Customeranmeldung Panic! No UserData!!!

Post by allsa2 »

Das Logfile sagt, dass der User erfolgreich authentifiziert wurde. Das merkt man auch wenn man zum Beispiel einen faschen Benutzernamen eingibt. Dann kommt nicht die Meldung Panic! No UserData!!! sondern "Falscher Benutzer oder Passwort".
allsa2
Znuny newbie
Posts: 6
Joined: 14 Feb 2008, 17:47

Customeranmeldung Panic! No UserData!!!

Post by allsa2 »

Hallo zusammen, gibt es hier niemand welcher so ein Problem schon hatte?

Kann jemand eine funktionierende ganze config.pm anzegen lassen, damit ich diese mal vergelichen kann? Braucht es sonst noch irgendwelche Einstellungen?
SavGuard
Znuny newbie
Posts: 5
Joined: 26 Feb 2008, 17:18

Customeranmeldung Panic! No UserData!!!

Post by SavGuard »

Hallo,

bist du bei deinem Problem schon weiter gekommen?
Ich habe hier ähnliche Probleme.
OTRS 3.3.3 / CentOS / MySQL / IT-Ticketsystem mit AD Connector für Agenten und AD für Kunden
karstene
Znuny newbie
Posts: 1
Joined: 01 Apr 2008, 20:42

Customeranmeldung Panic! No UserData!!!

Post by karstene »

Guten Abend,

in der englischen FAQ zu OTRS steht zu dem Thema, dass auch bei einer Authentifizierung über ein anderes Backend (LDAP,...) der Benutzer zumindest mit Namen und E-Mail in der OTRS-eigenen Datenbank vorhanden sein muss. Wäre das nicht der Fall, wäre dem Benutzer keine Gruppe zugeordnet und er hätte keine Rechte. Die Meldung deutet folglich darauf hin, dass der Benutzer noch nicht in der OTRS-DB vorhanden ist. Um die Daten nicht per Hand eintragen zu müssen, kann man sie mit folgenden Parametern synchronisieren:
$Self->{UserSyncLDAPMap},
$Self->{UserSyncLDAPGroups},
$Self->{'UserSyncLDAPGroupsDefination'},
$Self->{'UserSyncLDAPRolesDefination'},
$Self->{'UserSyncLDAPAttibuteGroupsDefination'},
$Self->{'UserSyncLDAPAttibuteRolesDefination'},

$Self->{'UserSyncLDAPGroupsDefination'}
Allerdings hat es bei mir erst gklappt, wenn ich die Nutzerdaten per Hand im Admin-Bereich angelegt habe. Alternativ funktioniert auch folgendes Skript:
sync-ldap2db.pl, zu finden unter Scripts im OTRS-Verzeichnis. Damit werden die Daten einmalig aus dem AD in der OTRS-DB gespeichert.

Schöne Grüße!
schwabts
Znuny newbie
Posts: 12
Joined: 06 Feb 2008, 19:41

Customeranmeldung Panic! No UserData!!!

Post by schwabts »

Diverse Sync-Parameter in der Config.pm helfen nicht:
OTRS an Active Directory
von jojo am 13 Feb 2008, 19:29

wie ich schon schrieb:

- Du brauchst nicht nur eine Kundenauthentifizierung sondern auch Kundendaten (CustomerUser)
- Sync hat was mit Agenten zu tun, nichts mit Kunden
Ich habe folgendes für die Customers definiert (hat gestern auch funktioniert, will aber noch einiges verbessern)

Code: Select all

$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'ldap.domain.com';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = '<DN-Name der OU mit den customers>';
$Self->{'Customer::AuthModule::LDAP::login'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = '<DN-Name eines Users mit LDAP-Leserechten>';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = '********';
Man braucht weiter mindestens einen CustomerUser. Hier einer, der zu "Panic! No UserData!!!" führt; folgender Config-Teil funktioniert also nicht

Code: Select all

    $Self->{CustomerUser} = {
        Name => 'LDAP Backend',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            Host => 'ldap.domain.com',
            BaseDN => '<DN-Name der OU mit den customers>',
            SSCOPE => 'sub',
            UserDN => '<DN-Name eines Users mit LDAP-Leserechten>',
            UserPw => '********',
            AlwaysFilter => '',
            Params => { port => 389, timeout => 120, async => 0, version => 3, },
        },
        CustomerKey => 'sAMAccountName',
        CustomerID => 'mail',
        CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
        CustomerUserExcludePrimaryCustomerID => 0,
        AdminSetPreferences => 0,
        CacheTTL => 0,
        Map => [
            # note: Login, Email and CustomerID needed!
            [ 'UserSalutation', 'Title',      'title',           1, 0, 'var', '', 0 ],
            [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
            [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
            [ 'UserLogin',      'Username',   'login',  1, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
            [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
            [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
            [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
        ],
    };
Erklärungsversuch: ich hatte nicht überall (nämlich im Mapping) den Feldnamen 'login' durch die Windows-Bezeichnung 'sAMAccountName' ersetzt. Wenn ich das richtig verstanden habe, wird mit den Eintragen $Self->{CustomerUser} bzw $Self->{CustomerUser1} bis $Self->{CustomerUserN} spezifiziert, aus welcher Datenquelle Kundenbenutzer zu entnehmen sind. Wenn in einer solchen Datenquelle die Daten mit anderen Etiketten gespeichert sind als in der OTRS-DB, müssen die Feldnamen mit dem Attribut Map korrigiert werden. Kann mir jemand sagen, ob das so stimmt?

Jedenfalls hatte es dann mit der geänderten Zeile

Code: Select all

[ 'UserLogin',      'Username',   'sAMAccountName',  1, 1, 'var', '', 0 ],
funktioniert.

Viele Grüsse,
Thomas
Locked