Hauptmenü

Einbindung LDAP

Begonnen von kluenni, 21.11.2016 14:14:54

⏪ vorheriges - nächstes ⏩

kluenni

Hallo,

wie kann ich in der Config.pm zwei unterschiedliche OUs nach Benutzern abfragen? Ich habe eine Domäne, aber die Benutzer sind in zwei unterschiedlichen OUs.
Habe mir den folgenden Inhalt kopiert und angepasst, aber ich habe keine Ahnung, wie man jetzt eine zweite OU abfragt. (was nicht klappt ist, den gleichen Inhalt mit angepasster OU nochmal darunter in der Config einzufügen, dann erkennt Kix immer nur den untersten.

AuthModule:


#-------------------------------------#
# LDAP Konfiguration / Kunden Auth #
#-------------------------------------#
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'pdc.firma.ch';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=firma,dc=ch';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';

$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=username,cn=user,dc=firma,dc=ch';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'passwort';


#--------------------------------------#
# LDAP Konfiguration / Kundendaten #
#--------------------------------------#
$Self->{CustomerUser1} = {
Name => 'LDAP Datenquelle',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'pdc.firma.ch',
BaseDN => 'dc=firma,dc=ch',
SSCOPE => 'sub',
UserDN => 'cn=username,cn=user,dc=firma,dc=ch',
UserPw => 'passwort',
},
CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
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' ],
],
};


Danke.
Florian

Danny Bochmann

#1
Hallo Florian,

eine Unterscheidung in der OU ist durch die Erweiterung der folgenden Einträge möglich:

       
  • $Self->{CustomerUser<X>} = {
  • $Self->{'AuthModule::LDAP::GroupDN'} = 'CN=<CN>,OU=<OU>;DC=<DC>,DC=lokal';
  • UserDN => 'CN=<CN>,OU=<OU>,DC=<DC>,DC=lokal',
Alles weitere ist dann entsprechend deiner Datenbank anzupassen.
<*> ist natürlich durch deine Parameter zu ersetzen.

Viele Grüße
Danny

kluenni

Ok, das verstehe ich nicht ganz, wo genau jetzt dieser Eintrag an welche Stelle hin muss.
Kann mir nochmal jemand helfen, in dem Config-Chaos klar zu kommen? Muss das jetzt als Unterpunkt mit in die LDAP Konfiguration / Kunden Auth? Oder in die LDAP Konfiguration / Kundendaten? Und an welche Stelle?
Meine Config sieht exakt (ausser Kennwort und Domäne) so aus:

#-------------------------------------#
# LDAP Konfiguration / Kunden Auth #
#-------------------------------------#
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'x.x.x.x';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=xxx,DC=xxx';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';

$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,OU=xxx,DC=xxx';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxxx';

#--------------------------------------#
# LDAP Konfiguration / Kundendaten #
#--------------------------------------#
$Self->{CustomerUser1} = {
Name => 'LDAP',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'x.x.x.x',
BaseDN => 'OU=xxx,DC=xxx',
SSCOPE => 'sub',
UserDN => 'CN=Administrator,OU=xxx,DC=xxxx',
UserPw => 'xxxxxxxx',
SourceCharset => 'utf-8',
DestCharset => 'iso-8859-1',

},

CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
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' ],
],
};



Vielen vielen Dank im Voraus.

Florian

Danny Bochmann

Hallo Florian,

anbei deine Config welche funktionieren sollte:

#-------------------------------------#
# LDAP Konfiguration / Kunden Auth #
#-------------------------------------#
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'x.x.x.x';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=xxx,DC=xxx';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';

$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=Administrator,OU=xxx,OU=xxx2,DC=xxx';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'xxxxxxxxx';

#--------------------------------------#
# LDAP Konfiguration / Kundendaten #
#--------------------------------------#
$Self->{CustomerUser1} = {
Name => 'LDAP',
Params => {
Host => 'x.x.x.x',
BaseDN => 'OU=xxx,DC=xxx',
SSCOPE => 'sub',
UserDN => 'CN=Administrator,OU=xxx,OU=xxx2,DC=xxxx',
UserPw => 'xxxxxxxx',
SourceCharset => 'utf-8',
DestCharset => 'iso-8859-1',

},

CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
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' ],
],
};

Viele Grüße
Danny

kluenni

#4
Nein, so geht es leider nicht.
Auch wenn ich es in der BaseDN mit Komme ergänze geht es nicht...

Danny Bochmann

Hallo Florian,

um an dieser Stelle aussagen zu können aus welchem Grund diese Konfiguration nicht funktioniert, benötige ich den entsprechenden Logauszug.

Des weiteren könntest du einmal testen ob es möglich ist einen LDAPSearch von dem Applikationserver durchzuführen.
Auch hierbei bitte ich im Anschluss daran um das Ergebnis.

Viele Grüße
Danny