Moderator: crythias
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'xxxxxxxxxx.fr';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=xxxxxxx,dc=fr';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'uid';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'uid=ldapread,ou=users,o=ldap-services,dc=xxxxxxx,dc=fr';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'ldapread';
$Self->{UserSyncLDAPMap} = {
# DB -> LDAP
UserFirstname => 'givenname',
UserLastname => 'sn',
UserEmail => 'mail',
};
#CustomerUser
#(customer user database backend and settings)
$Self->{CustomerUser} = {
# ############ You forgot this ############
Name => 'LDAP Data Source',
# ######################################
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'xxxxxxxxxx.fr',
BaseDN => 'dc=xxxxxxx,dc=fr',
SSCOPE => 'sub',
UserDN => 'uid=ldapread,ou=users,o=ldap-services,dc=xxxxxxx,dc=fr',
UserPW => 'ldapread',
# ####################
AlwaysFilter => '',
# ####################
Params
},
# customer unique id
CustomerKey => 'uid',
CustomerID => 'uid',
CustomerUserListFields => ['uid', 'cn', 'mail'],
CustomerUserSearchFields => ['uid', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
Map => [
[ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
# ######## Is this valid for you? ############
[ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
# ######################################
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
[ 'UserCustomerID', 'CustomerID', 'uid', 0, 1, 'var' ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
],
};
$Self->{DatabaseUserTable} = 'customer_user';
$Self->{DatabaseUserTableUserID} = 'id';
$Self->{DatabaseUserTableUserPW} = 'pw';
$Self->{DatabaseUserTableUser} = 'login';
jojo wrote:As I said before, post an example LDIF of your LDAP
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'xxxxxxxxxx.fr';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=xxxxxxx,dc=fr';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'uid';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'uid=ldapread,ou=users,o=ldap-services,dc=xxxxxxx,dc=fr';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'ldapread';
#CustomerUser
#(customer user database backend and settings)
$Self->{CustomerUser} = {
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'xxxxxxxxxx.fr',
BaseDN => 'dc=xxxxxxx,dc=fr',
SSCOPE => 'sub',
UserDN => 'uid=ldapread,ou=users,o=ldap-services,dc=xxxxxxx,dc=fr',
UserPW => 'ldapread',
},
# customer unique id
CustomerKey => 'uid',
CustomerID => 'uid',
CustomerUserListFields => ['uid', 'cn', 'mail'],
CustomerUserSearchFields => ['uid', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
Map => [
[ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
[ 'UserLogin', 'Login', 'uid', 1, 1, 'var' ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
[ 'UserCustomerID', 'CustomerID', 'uid', 0, 1, 'var' ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
],
};
crythias wrote:No. Clear your mind of user (customer) database being stored in OTRS.
OTRS will transparently handle querying the information it knows about (from the Map in Config.pm) when you need to get more Customer Info.
Anything you're reading about sync is for (caching) authentication purposes, not customer lookup.
In the database, the ticket entry only stores the username and the customerID. Any links to customer information point to the data structure that holds the information WHERE LDAPusernamefield=usernamestoredinticket
Further information: a ticket will get created even if the customer does not exist in your database. ANYONE who sends an email to your otrs inbox gets a ticket.
crythias wrote:No. Clear your mind of user (customer) database being stored in OTRS.
OTRS will transparently handle querying the information it knows about (from the Map in Config.pm) when you need to get more Customer Info.
Anything you're reading about sync is for (caching) authentication purposes, not customer lookup.
In the database, the ticket entry only stores the username and the customerID. Any links to customer information point to the data structure that holds the information WHERE LDAPusernamefield=usernamestoredinticket
Further information: a ticket will get created even if the customer does not exist in your database. ANYONE who sends an email to your otrs inbox gets a ticket.
chetannagaonkar wrote:Mothra, I think that Services can still be mapped to Customers regardless. LDAP/Database don't seem related to this. Not sure if I understood Mothra's question correctly.
chetannagaonkar wrote:Hello Amacquet,
My 2 cents:
Going thru the thread, initially it appeared that there was a confusion btwn customers in the database and LDAP. Just a suggestion - When you copied the customer section from Defaults.pm, I hope that you haven't retained "database" section of it that is used to log customers that are in the database. Check if you can remove that section and retain just the LDAP section.
Best Regards
Chetan
package Kernel::Config;
sub Load {
my $Self = shift;
$Self->{'DatabaseHost'} = 'localhost';
$Self->{'Database'} = 'otrs';
$Self->{'DatabaseUser'} = 'otrs';
$Self->{'DatabasePw'} = 'otrs';
$Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";
$Self->{Home} = '/opt/otrs';
$Self->{'SystemID'} = 10;
$Self->{'SecureMode'} = 1;
$Self->{'Organization'} = '';
$Self->{'LogModule::LogFile'} = '/var/log/otrs.log';
$Self->{'LogModule'} = 'Kernel::System::Log::File';
$Self->{'FQDN'} = 'joles';
$Self->{'DefaultLanguage'} = 'fr';
$Self->{'AdminEmail'} = 'axxxxxxxxxxxxxxxx';
$Self->{'DefaultCharset'} = 'utf-8';
$ self-> {debug} = 3;
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'xxxxxxxxxxxxxxxxxxxxxxx';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=xxxxxxxxxxxxxxxx,dc=fr';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'uid';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'uid=ldapread,ou=users,o=ldap-services,dc=xxxxxxxxxxxx,dc=fr';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'ldapread';
# $Self->{UserSyncLDAPMap} = {
# DB -> LDAP
# UserFirstname => 'givenName',
# UserLastname => 'sn',
# UserEmail => 'mail',
# };
#CustomerUser
#(customer user database backend and settings)
$Self->{CustomerUser} = {
Name => 'LDAP Data Source',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'xxxxxxxxxxxxxxxxxxxxxxxx',
BaseDN => 'dc=xxxxxxxxxxxxxx,dc=fr',
SSCOPE => 'sub',
UserDN => 'uid=ldapread,ou=users,o=ldap-services,dc=xxxxxxxxxxxxx,dc=fr',
UserPW => 'ldapread',
AlwaysFilter => '',
},
# customer unique id
CustomerKey => 'uid',
CustomerID => 'uid',
CustomerUserListFields => ['uid', 'cn', 'mail'],
CustomerUserSearchFields => ['uid', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenName', 'sn'],
Map => [
[ 'UserFirstname', 'Firstname', 'givenName', 1, 1, 'var' ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
[ 'UserLogin', 'Login', 'uid', 1, 1, 'var' ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
[ 'UserCustomerID', 'CustomerID', 'uid', 0, 1, 'var' ],
#[ 'UserPhone', 'Phone', 'telephoneNumber', 1, 0, 'var' ],
],
};
# $Self->{DatabaseUserTable} = 'customer_user';
# $Self->{DatabaseUserTableUserID} = 'id';
# $Self->{DatabaseUserTableUserPW} = 'pw';
# $Self->{DatabaseUserTableUser} = 'login';
}
# ---------------------------------------------------- #
# needed system stuff (don't edit this) #
# ---------------------------------------------------- #
use strict;
use warnings;
use vars qw(@ISA $VERSION);
use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');
use vars qw(@ISA $VERSION);
$VERSION = qw($Revision: 1.21 $)[1];
# -----------------------------------------------------#
1;
chetannagaonkar wrote:Its little late over here. I'll try to review the config.pm tomorrow, sorry.
I think that the below script in Config.pm is NOT required since you are leveraging LDAP. The script should reflect LDAP as customer database source.
ERROR: OTRS-CGI-10 Perl: 5.10.0 OS: linux Time: Wed Jan 5 12:01:30 2011
Message: No such object
Traceback (4944):
Module: Kernel::System::CustomerUser::LDAP::CustomerUserDataGet (v1.53.2.1) Line: 580
Module: Kernel::System::CustomerUser::CustomerUserDataGet (v1.55.2.1) Line: 283
Module: Kernel::System::CustomerUser::SetPreferences (v1.55.2.1) Line: 491
Module: Kernel::System::CustomerAuth::Auth (v1.29) Line: 155
Module: Kernel::System::Web::InterfaceCustomer::Run (v1.41.2.1) Line: 195
Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_customer_2epl::handler (unknown version) Line: 48
Module: (eval) (v1.42) Line: 204
Module: ModPerl::RegistryCooker::run (v1.42) Line: 204
Module: ModPerl::RegistryCooker::default_handler (v1.42) Line: 170
Module: ModPerl::Registry::handler (v1.99) Line: 31
ERROR: OTRS-CGI-10 Perl: 5.10.0 OS: linux Time: Wed Jan 5 12:01:30 2011
Message: No such user 'amacquet'!
Traceback (4944):
Module: Kernel::System::CustomerUser::SetPreferences (v1.55.2.1) Line: 493
Module: Kernel::System::CustomerAuth::Auth (v1.29) Line: 155
Module: Kernel::System::Web::InterfaceCustomer::Run (v1.41.2.1) Line: 195
Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_customer_2epl::handler (unknown version) Line: 48
Module: (eval) (v1.42) Line: 204
Module: ModPerl::RegistryCooker::run (v1.42) Line: 204
Module: ModPerl::RegistryCooker::default_handler (v1.42) Line: 170
Module: ModPerl::Registry::handler (v1.99) Line: 31
Message: No such object
Traceback (4944):
Module: Kernel::System::CustomerUser::LDAP::CustomerUserDataGet (v1.53.2.1) Line: 580
Module: Kernel::System::CustomerUser::CustomerUserDataGet (v1.55.2.1) Line: 283
Module: Kernel::System::CustomerAuth::Auth (v1.29) Line: 180
Module: Kernel::System::Web::InterfaceCustomer::Run (v1.41.2.1) Line: 195
Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_customer_2epl::handler (unknown version) Line: 48
Module: (eval) (v1.42) Line: 204
Module: ModPerl::RegistryCooker::run (v1.42) Line: 204
Module: ModPerl::RegistryCooker::default_handler (v1.42) Line: 170
Module: ModPerl::Registry::handler (v1.99) Line: 31
ERROR: OTRS-CGI-10 Perl: 5.10.0 OS: linux Time: Wed Jan 5 12:01:30 2011
Message: No such object
Traceback (4944):
Module: Kernel::System::CustomerUser::LDAP::CustomerUserDataGet (v1.53.2.1) Line: 580
Module: Kernel::System::CustomerUser::CustomerUserDataGet (v1.55.2.1) Line: 283
Module: Kernel::System::Web::InterfaceCustomer::Run (v1.41.2.1) Line: 199
Module: ModPerl::ROOT::ModPerl::Registry::opt_otrs_bin_cgi_2dbin_customer_2epl::handler (unknown version) Line: 48
Module: (eval) (v1.42) Line: 204
Module: ModPerl::RegistryCooker::run (v1.42) Line: 204
Module: ModPerl::RegistryCooker::default_handler (v1.42) Line: 170
Module: ModPerl::Registry::handler (v1.99) Line: 31
If you cannot sync user data then you will have to add it manually via the user section in the admin interface of OTRS.
Users browsing this forum: No registered users and 3 guests