Gerald – Going back through last night’s emails.
The latest code has them nested. Even adding
Name => ‘LDAP Datasource’,
to Params does not seem to change things. And SSCOPE is now upper case.
I do see when looking at customers in the admin panel that LDAP Datasource is now a selection, but it did not add the user to that group.
From: Gerald Young [mailto:crythias@gmail.com]
Sent: Tuesday, March 19, 2013 3:39 PM
To: User questions and discussions about OTRS.
Subject: Re: [otrs] "Authentication succeeded, but no customer record is found in the customer backend. Please contact your administrator."
http://forums.otterhub.org/viewtopic.php?f=60&t=16543
Please indicate what your view of "does not work" means in terms that can be addressed. If "does not work" means it doesn't populate customer_user table, it is working. If "does not work" accompanies an error of some sort, please provide the error. Most commonly, the error is roughly: "Customer Authentication succeeded but customer does not exist in database", which, admittedly, is confusing. If you've entered any information on how to obtain Customer demographics (CustomerUser) in SysConfig, it could possibly clobber your Config.pm settings.
I will tell you that CustomerUser is missing
Name => 'My Data Source'
sscope should be SSCOPE
the lower case Params should be with in another Params hash.
On Tue, Mar 19, 2013 at 4:25 PM, Gerald Young <crythias@gmail.com> wrote:
LDAP is a query against an external source, not a sync to the database.
Everything (customer or agent authentication or demographics) does NOT have to exist in OTRS. That's why there is ability for external backends. What you think "should" happen -- and isn't happening -- is intentional and proper.
That's what the "Map" is for in CustomerUser. It tells OTRS what fields your external back end uses for fields that OTRS uses.
On Tue, Mar 19, 2013 at 4:06 PM, Marty Hillman <mhillman@equuscs.com> wrote:
Come to think of it, if it does not add the customers to the database, the feature is pretty worthless. Why validate against LDAP/AD at all for customers if everything has to exist in the database? That would just be adding useless complexity.
From: otrs-bounces@otrs.org [mailto:otrs-bounces@otrs.org] On Behalf Of Marty Hillman
Sent: Tuesday, March 19, 2013 3:00 PM
To: User questions and discussions about OTRS.
Subject: Re: [otrs] "Authentication succeeded, but no customer record is found in the customer backend. Please contact your administrator."
My Config.pm appears to be configured correctly, but it does not work. I have looked at the articles in your links along with dozens of others. All of them have the exact same configuration as what I posted in my initial email unless there is a character somewhere I am missing. I copied and pasted the configurations changing my DN, CN, OU, DC in accordance with my AD structure. It is obviously authenticating, so I am fairly certain I did it right. The sAMAccountName and mail settings have been changed various times to try to get it working. Until just before I posted my message, they were both set to ‘mail’.
One user wrote that the Customer::Auth page needed to be modified in SysConfig. http://deckerix.com/blog/configura-tu-otrs-con-soporte-ldap/ I did this as well and verified the settings in ZZZauto.pm.
From how I read your email (“OTRS will not populate your customer_user database”), I am going to have to hand enter 500 user accounts for the potential employees that can enter tickets or they will not be able to use the system. If I understand you correctly, that is a project killer.
If the system can create the agent accounts based on settings in the Config.pm file, why would it not be able to do so with customers?
From: otrs-bounces@otrs.org [mailto:otrs-bounces@otrs.org] On Behalf Of Leonardo Certuche
Sent: Tuesday, March 19, 2013 2:03 PM
To: User questions and discussions about OTRS.
Subject: Re: [otrs] "Authentication succeeded, but no customer record is found in the customer backend. Please contact your administrator."
Hello Marty,
OTRS will not populate your customer_user database once integrated with an LDAP/AD. It will check if the user exists on 'CN=OTRS Dev,OU=level2,OU=level1,DC=domain,DC=com' and then it will confirm the password. If it matches, it will let the customer log in.
What you are facing probably has to do with the fact that first you associate CustomerID with one thing:
CustomerID => 'sAMAccountName',
And then you map it with another:
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
Have you tried the following entries?
Leonardo Certuche
www.itconsultores.com.co
Medellín, Colombia
On 19 March 2013 13:41, Marty Hillman <mhillman@equuscs.com> wrote:
I have Googled and screwed around with Config.pm for hours. The configuration is creating agents in the database appropriately, but it is not creating users in the customer database. I am using this as in internal system only, so there is no outside access. I want any user to be able to use their AD credentials to log on. If there is not an account in OTRS, it should create one for them.
Anyone have any thoughts on what I am overlooking? Here is my /opt/otrs/Kernel/Config.pm. I copied and pasted from several Google results and modified for my own information. It does validate the password is correct for the customer, but does not add them to the database if they don’t exist.
# ---------------------------------------------------- #
# http://wiki.otterhub.org/index.php?title=Using_OTRS_with_Active_Directory_as_a_source_for_agents #
# ---------------------------------------------------- #
# This is an example configuration for using an MS AD backend
$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host'} = '172.16.10.21';
$Self->{'AuthModule::LDAP::BaseDN'} = 'dc=domain,dc=com';
$Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
# Check if the user is allowed to auth in a posixGroup
# (e. g. user needs to be in a group OTRS_Agents to use otrs)
$Self->{'AuthModule::LDAP::GroupDN'} = 'CN=Corp_Admin_MIS,OU=level2,OU=level1,DC=domain,DC=com';
$Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
$Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
# Bind credentials to log into AD
$Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=OTRS Dev,OU=level2,OU=level1,DC=domain,DC=com';
$Self->{'AuthModule::LDAP::SearchUserPw'} = 'password';
# in case you want to add always one filter to each ldap query, use
# this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
$Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
# in case you want to add a suffix to each login name, then
# you can use this option. e. g. user just want to use user but
# in your ldap directory exists user@domain.
#$Self->{'AuthModule::LDAP::UserSuffix'} = '';
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
# Now sync data with OTRS DB
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = '172.16.10.21';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=domain, dc=com';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=OTRS Dev,OU=level2,OU=level1,DC=domain,DC=com';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'password';
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sn',
UserEmail => 'mail',
};
# AuthSyncModule::LDAP::UserSyncInitialGroups
# (sync following group with rw permission after initial create of first agent
# login)
$Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
'users',
];
# ---------------------------------------------------- #
# Customer authentication section #
# ---------------------------------------------------- #
$Self->{'SecureMode'} = '1';
# The name to be used for this server when constructing URLs in email
$Self-> {'FQDN'} = 'otrsdev.domain.com';
#Enable LDAP authentication for Customers / Users
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = '172.16.10.21';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=domain,DC=com';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=OTRS Dev,OU=level2,OU=level1,DC=domain,DC=com';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'password';
$Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '(objectclass=user)';
$Self->{'Customer::AuthModule::LDAP::UserSuffix'} = '';
# $Self->{'AuthModule::LDAP::Die'} = 1;
#CustomerUser
#(customer user database backend and settings)
$Self->{CustomerUser} = {
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '172.16.10.21',
BaseDN => 'DC=domain,DC=com',
async => 0,
port => 389,
sscope => 'sub',
timeout => 120,
version => 3,
UserDN => 'CN=OTRS Dev,OU=level2,OU=level1,DC=domain,DC=com';
UserPw => 'password',
},
# Unique customer key/id
CustomerKey => 'sAMAccountName',
CustomerID => 'sAMAccountName',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
Map => [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown, required, storage-type
#[ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],
[ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
[ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
#[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var' ],
#[ 'UserComment', 'Comment', 'description', 1, 0, 'var' ],
],
};
# ---------------------------------------------------- #
---------------------------------------------------------------------
OTRS mailing list: otrs - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/otrs
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs
---------------------------------------------------------------------
OTRS mailing list: otrs - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/otrs
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs
---------------------------------------------------------------------
OTRS mailing list: otrs - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/otrs
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs