nach dem es mir erfolgreich gelungen ist, die Authentifizierung meiner Agenten-Benutzer über unseren Verzeichnisdienst zu machen, möchte ich das auch für die Kundenbenutzer machen. Leider habe ich da noch ein paar Schwierigkeiten.
Ich habe aus der defaults.pm die entsprechenden Teile in meine config.pm kopiert und gemäß unserer Situation angepaßt, das ganze sieht jetzt so aus:
Code: Select all
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'ldapsrv.verwaltung.uni-muenchen.de';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'ou=benutzer,o=uni-muenchen,c=de';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'mail';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=otrs-proxy,ou=proxy-user,ou=technik,o=uni-muenchen,c=de';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = '******';
$Self->{'Customer::AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
# CustomerUser
# (customer user ldap backend and settings)
$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
# ldap host
Host => 'ldapsrv.verwaltung.uni-muenchen.de',
# ldap base dn
BaseDN => 'ou=Benutzer,o=uni-muenchen,c=de',
# search scope (one|sub)
SSCOPE => 'sub',
# The following is valid but would only be necessary if the
# anonymous user does NOT have permission to read from the LDAP tree
UserDN => 'cn=otrs-proxy,ou=proxy-user,ou=technik,o=uni-muenchen,c=de',
UserPw => '******',
# in case you want to add always one filter to each ldap query, use
# this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
AlwaysFilter => '',
# if your frontend is e. g. iso-8859-1 and the charset of your
# ldap server is utf-8, use this options (if not, ignore it)
SourceCharset => 'utf-8',
DestCharset => 'iso-8859-1',
# die if backend can't work, e. g. can't connect to server
Die => 1,
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,
},
},
# customer uniq id
CustomerKey => 'mail',
# customer #
CustomerID => 'mail',
CustomerUserListFields => ['cn', 'sn', 'mail', 'lmu-stud-matrikelnummer'],
CustomerUserSearchFields => ['cn', 'mail', 'lmu-stud-matrikelnummer'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
# show not own tickets in customer panel, CompanyTickets
CustomerUserExcludePrimaryCustomerID => 0,
# add a ldap filter for valid users (expert setting)
# CustomerUserValidFilter => '(!(description=gesperrt))',
# admin can't change customer preferences
AdminSetPreferences => 0,
# cache time to life in sec. - cache any ldap queris
CacheTTL => 0,
Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
[ 'UserSalutation', 'Title', 'title', 1, 0, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var', '', 0 ],
[ 'UserLogin', 'Username', 'cn', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'lmu-stud-matrikelnummer', 0, 1, 'var', '', 0 ],
# [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ],
[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var', '', 0 ],
[ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', 0 ],
],
};
Wenn ich aber versuche, mich am Kundenportal anzumelden, erhalte ich die Fehlermeldung:
Code: Select all
Panic! No UserData!!!
Code: Select all
[Tue Nov 17 08:56:11 2009][Notice][Kernel::System::CustomerAuth::LDAP::Auth] CustomerUser: m.ludwig@lmu.de (cn=m.ludwig,ou=Benutzer,o=uni-muenchen,c=de) authentication ok (REMOTE_ADDR: 127.0.0.1).
Über die Kunden-Suche werden die Daten der Kunden auch korrekt angezeigt, aber wenn man einen Kunden anklickt, bleiben die Felder in der "Bearbeiten"-Maske leer. Mir ist natürlich bewußt, dass ich hier nicht bearbeiten kann, weil OTRS nur lesend auf das Directory zugreift, aber warum werden die Informationen nicht angezeigt?