LDAP/AD mit Single Sign On

Hilfe zu Znuny Problemen aller Art
Post Reply
janikotto
Znuny newbie
Posts: 10
Joined: 03 Jul 2013, 14:26
Znuny Version: 3.2.8

LDAP/AD mit Single Sign On

Post by janikotto »

Hallo Community!

Nachdem ich hier schon eine Menge herumprobiert habe, dachte ich mir hier zu schreiben wäre vielleicht etwas hilfreicher!

In unserem Netzwerk möchten wir ein Ticket-System einführen und sind zu dem Schluss gekommen, dass OTRS für uns das Beste zu sein scheint. Also runtergeladen, Server fertig gemacht und OTRS 3.2.8 mit ITSM installiert - funktioniert gut und läuft flüssig. Die Kunden sind alle innerhalb der OU "Benutzer", allerdings sollen sich nur diejenigen anmelden können, welche in der Sicherheitsgruppe "OTRS-Customers" befinden.

Hiermit synchronisieren wir die "Kunden" aus der AD:

Code: Select all

$Self->{CustomerUser} = {
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
	Host => 'dc.firma.local',
	BaseDN => 'OU=Benutzer, DC=firma, DC=local',                  				
	SSCOPE => 'sub',
	UserDN => 'CN=OTRS_Searcher,OU=Spezial,DC=firma,DC=local',
	UserPw => 'somepass',
	AlwaysFilter =>  '(objectClass=user)',
	SourceCharset => 'utf-8',
	DestCharset   => 'utf-8',
},
CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
Map => [
	[ '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', 'sAMAccountName', 0, 1, 'var' ],
	[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
	],
}; 

Eine Anmeldung der Kunden per LDAP funktioniert hiermit schonmal gut, allerdings ohne SSO:

Code: Select all

#$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
#$Self->{'Customer::AuthModule::LDAP::Host'} = 'dc.firma.local';
#$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=Benutzer, DC=firma, DC=local';
#$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
#$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=OTRS-Customers,OU=OTRS,OU=Berechtigungen,DC=firma,DC=local';
#$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
#$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
#$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=OTRS AD Searcher,OU=Spezial,OU=Benutzer,DC=firma,DC=local';
#$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'somepass';
Wenn ich es bis dato richtig verstanden habe, kann ein SSO nur hierdurch aktiviert werden:

Code: Select all

$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
Füge ich diese Zeile jedoch ein, übergeht er vollständig die LDAP-Angaben und lässt jeden Kunden, welchen OTRS synchronisiert hat, herein. Also habe ich versucht, die synchronisierten Benutzer zu begrenzen indem ich den Parameter "AlwaysFilter" geändert habe; und zwar von:

Code: Select all

AlwaysFilter =>  '(objectClass=user)',
zu

Code: Select all

AlwaysFilter =>  '(&(objectClass=user)(memberof=CN=OTRS-Customers,OU=OTRS,OU=Berechtigungen,DC=firma,DC=local))',
Dies führt dazu, dass wirklich nur die Kunden synchronisiert sind, welche Teil der Gruppe OTRS-Customers sind. Jetzt kommt allerdings das große ABER: Füge ich der Gruppe OTRS-Customers jetzt eine Gruppe hinzu, beispielsweise für eine Abteilung "Einkauf", deren Benutzer ebenfalls als "Kunden" eingetragen werden sollen, werden diese NICHT erkannt, sondern lediglich die Benutzer, die direkt zugeordnet sind. (Lasse ich "(objectClass=user)" weg, so wird auch die Gruppe "Einkauf" in OTRS angezeigt - logisch, sie ist ja auch Mitglied von "OTRS-Customers", bringt mir allerdings rein garnichts.)

Jetzt wüsste ich gern, wie ich dieses Problem lösen kann. Vielleicht hat es ja bereits jemand hier umgesetzt? :)
AyKay
Znuny newbie
Posts: 14
Joined: 07 Jun 2013, 08:00
Znuny Version: 3.2.7

Re: LDAP/AD mit Single Sign On

Post by AyKay »

Hi,

das es ohne SSO funktioniert ist klar. Da wird LDAP berücksichtigt. Sobald du allerdings SSO aktiviert sind deine LDAP-Einstellungen für den Arsch (werden nicht beachtet). Das liegt daran, das nicht OTRS den SSO macht, sondern der Apache. Bedeutet, du kannst LDAP komplett aus deiner config.pm auskommentieren und es funktioniert trotzdem (die Synchronisation der Kunden muss natürlich drin bleiben). Ich finde deine Lösung mit "memberof" sehr gut. Leider habe ich dafür noch keinen Lösungsansatz.

Hast du OTRS 3.2.8 auf einem Windows-System oder auf einem Linux?
janikotto
Znuny newbie
Posts: 10
Joined: 03 Jul 2013, 14:26
Znuny Version: 3.2.8

Re: LDAP/AD mit Single Sign On

Post by janikotto »

Hallo AyKay!

Ich habe das aktuelle OTRS 3.2.8 Windows-Paket auf einem Server 2012 installiert. Ein Lösungsansatz wurde scheinbar bereits verfolgt, allerdings steht diese Möglichkeit nicht für die neuste Version von OTRS zur Verfügung. Das ganze nennt sicht "ConnectAD", allerdings konnte ich es nicht testen... :(
Post Reply