Single Sign On

Hilfe zu OTRS Problemen aller Art
Post Reply
uweuwe
Znuny newbie
Posts: 57
Joined: 30 Jul 2009, 10:03
Znuny Version: 2.4.2

Single Sign On

Post by uweuwe »

Heyho,

ich weiß das dieses Thema hier schon sehr oft angesprochen wurde und ich habe auch schon den ganzen tag die Suche benutzt um nciht einen unnötigen weiteren Post zu dem Thema zu erstellen,
aber leider komme ich nicht weiter.

Um das ganze mal strukturiert anzugehen und so vielleicht auch anderen Leuten mit dem gleichen Problem bestmöglich zu hlefen, gliedere ich meinen Post in 3 Teile:
1. Derzeitige Anbindung von meinem OTRS an das LDAP
2. Gewüschte Anbindung an das LDAP
3. Eigene Auffasung des Workflows zur Realisierung des Single Sign On
4. Fragen und Probleme

1.
In meiner derzeitigen Konfiguration von meinem OTRS authentifiziere ich die Agenten gegen unser AD, lege die Agenten jedoch selber noch im OTRS an,
d.h. die Daten werden nicht aus dem AD übernommen, sondern es wird nur geprüft ob der angegebene Login im AD vorhanden ist und das Passwort stimmt.
Die Daten der Agenten stehen jedoch im OTRS und werden von mir selber eingetragen.
Die Customer werden wie die Agenten gegen das AD authentifiziert. Der Unterscheid zu den Agenten ist jedoch, das bei einem erfolgreichen Login die Daten ins OTRS übernommen werden.
Die Kunden werden also nicht im OTRS selber gepflegt.


2.
Ich würde gerne diese Art der Authentifizierung beibehalten, jedoch soll automatisch beim aufrufen des Customer-Interfaces(customer.pl) und des Agenten-Interfaces(index.pl) der
derzeitgie Windows-User automatisch in die Login-Maske eingegeben werden bzw. an OTRS übermittelt werden, so dass der Login automatisch passiert.


3.
Nach meiner Auffasung müsste ich jetzt folgendes machen um dies zu realisieren:
- In der config.pm folgendes eintragen $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
- Dem Apache ein Modul hinzufügen welches die Authentifizeriung gegenüber dem AD ermöglicht
- Dieses Modul konfigurieren
- Den Browser korrekt einstellen


4.
Dazu habe ich jetzt folgende Fragen:
1. Füge ich diese beiden Zeilen extra in die Config.pm ein oder muss ich Zeilen für den alten Authentifizierungs-Mechanismus, wie in 1. beschrieben ersetzen oder sogar den gesamten Code für die alte Authentifierzierung löschen und nur diese beiden Zeilen hinzufügen.
2. Welches Modul nehme für den Apache?
3. Wie füge ich dem Apache unter Windows solch ein Modul hinzu?
4. Wie konfiguriere ich dieses Modul?


Mit freundlichen Grüßen

Uwe
Produktiv: OTRS 2.4.7 auf Windows Server 2003
Testsystem: OTRS 3.0.6 auf Windows XP
Weiter
Znuny newbie
Posts: 1
Joined: 06 May 2010, 17:22
Znuny Version: 2.4

Re: Single Sign On

Post by Weiter »

Hallo Uwe,

ich habe diese Anleitung zum Einrichten des SSo gefunden, die bei mir auf Anhieb und problemlos funktioniert hat:

http://wiki.otrs-forum.de/index.php?tit ... ith_Apache

Evtl. hilft sie Dir ja auch weiter.

Mit freundlichen Grüßen

Frank
DennisI
Znuny newbie
Posts: 10
Joined: 29 Apr 2010, 14:50
Znuny Version: 2.4.7

Re: Single Sign On

Post by DennisI »

Hallo Frank,

ich klinke mich hier mal kurz ein ...

Die Anleitung sieht gut aus ... für mich bleibt nur eine Frage offen: Es würden ja jetzt alle Nutzer zu gültigen Agents oder? Macht man dann die Unterscheidung nach AD Gruppen genauso, wie beim normalen LDAP Auth?

Gruß
Dennis
OTRS 2.4.7 auf openSUSE 11.2 + Apache
jojo
Znuny guru
Posts: 15019
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: Single Sign On

Post by jojo »

Die Anleitung ist relativ alt. Sinnvollerweise sollte man hier auch mit LDAP Sync arbeiten bzw. eine entsprechende Filtergruppe in der Apache Config nutzen
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
CasioNo15
Znuny newbie
Posts: 1
Joined: 27 May 2010, 11:14
Znuny Version: 2.4.7

Re: Single Sign On

Post by CasioNo15 »

Hallo Zusammen,

ich stehe anscheinend vor dem exakt selben Problem wie Uwe und probiere hier schon seit 2 Tagen mit dem SSO rum und bekomme es einfach nicht hin.
Ich benutze OTRS 2.4.7 mit Apache 2.2.10 auf Windows Server Enterprise 2008 64-Bit.

Ich habe zunächst so angefangen.
In der Config.pm habe ich erfolgreich die LDAP-Anbindung eingefügt. Meine Kunden bekommen die LoginMaske und können sich alle an OTRS anmelden! Die MySQL Datenbank wird somit nicht benutzt, lediglich die Admins müssen dort von Hand eingepflegt werden, aber das ist ja kein Problem.

Jetzt würde ich gerne SSO einbinden.
Folgende Schritte habe ich gemacht:

1. In der Config.pm:

Code: Select all

$Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
getauscht gegen:
$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
und

Code: Select all

#$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
getauscht gegen:
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
Die restliche LDAP Konfiguration habe ich da noch stehen!! Also Host, BaseDN, UID, SearchUserDN etc..
Ist das überhaupt richtig oder muss das alles raus!?

In der httpd.conf vom Apache:
Zunächst das SSPI-Modul runtergeladen und in den "modules" Ordner kopiert.
In der Config dann:

Code: Select all

LoadModule sspi_auth_module modules/mod_auth_sspi.so
ganz oben hinzugefügt und die restlichen 3 Module aktiviert.

Code: Select all

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so
Jetzt kommt das mit den Ordnern...Ja da habe ich schon alles mögliche ausprobiert. Zur Zeit steht da folgendes ganz unten in der Config:

Code: Select all

<Directory "C:/PROGRA~2/OTRS/OTRS/var/httpd/htdocs">
    SSPIAuth On
    SSPIAuthoritative On
#   SSPIDomain pdc.example.com
    SSPIUsernameCase lower
    SSPIOfferBasic On
    Require valid-user
    Options +ExecCGI -Includes
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory "C:/PROGRA~2/OTRS/OTRS/bin/cgi-bin">
    SSPIAuth On
    SSPIAuthoritative On
#   SSPIDomain pdc.example.com
    SSPIUsernameCase lower
    SSPIOfferBasic On
    Require valid-user
    Options +ExecCGI -Includes
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Was ist die SSPI Domain!?
Wenn ich jetzt OTRS im Browser aufrufe erhalte ich eine neue User/Pass eingabemaske, das ist aber nicht die Standardmaske von OTRS.
Wenn ich da jetzt meinen Domänenbenutzer/Passwort eingebe, mit dem ich auch am PC eingeloggt bin, kommt nur "Authorization Required"

In der error.log:

Code: Select all

(OS 1326)Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort.  : authentication failure for "/otrs/customer.pl": user unknown
Danke schonmal!

Gruß Janusch
lousek
Znuny newbie
Posts: 25
Joined: 12 Feb 2010, 10:29
Znuny Version: 2.4.7

Re: Single Sign On

Post by lousek »

Hallo Forum,

Bei uns werden die Agents ebenfalls gegen ein Active Directory synchronisiert (inkl. LDAP Sync).
OTRS 2.4.7 rennt bei uns auf Debian 5 & Apache 2.2.9.
Jedoch komme ich mit dem SSO auch nicht weiter; falls dies jemand bereits in Gebrauch hat, wäre ich froh um ein How To :)

Edit:
Ich denke, ich bin der Lösung schon ein ganzes Stück näher gekommen, für andere ist dies vieleicht schon die Lösung.
Bei uns geht es darum, dass die Agents (importiert aus einem Active Directory) sich automatisch mittels Single Sign On beim OTRS anmelden.
Ausschnitt aus der /etc/otrs/Kernel/Config.pm:

Code: Select all

        #
        # Agent-Login via LDAP
        #
    $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'} = 'dc.mydomain.bla.blu';
    $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=mydomain,dc=bla,dc=blu';
    $Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'AuthModule::LDAP::SearchUserDN'} = 'DOMAIN\user';
    $Self->{'AuthModule::LDAP::SearchUserPw'} = 'password';
    $Self->{'AuthModule::LDAP::AlwaysFilter'} = '(objectclass=user)';
    #$Self->{'AuthModule::LDAP::UserSuffix'} = '@mydomain.intern';
    $Self->{'AuthModule::LDAP::Params'} = { port => 389, timeout => 120,
        async => 0, version => 3, };

    # UserSyncLDAPMap
    $Self->{UserSyncLDAPMap} = {
        # DB -> LDAP
        Firstname => 'givenName', Lastname => 'sn', Email => 'mail', };

    # UserSyncLDAPGroups
    $Self->{UserSyncLDAPGroups} = [ 'users', ];

    # UserTable
    $Self->{DatabaseUserTable} = 'users';
    $Self->{DatabaseUserTableUserID} = 'id';
    $Self->{DatabaseUserTableUserPW} = 'pw';
    $Self->{DatabaseUserTableUser} = 'login';

    $Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
und in der /etc/apache2/sites-enabled/000-default wurde der <Location>-Abschnitt hinzugefügt:

Code: Select all

    <Location /otrs>
        AuthName "OTRS Login"
        AuthType Basic
        AuthzLDAPAuthoritative off
        AuthBasicProvider ldap
        AuthLDAPURL "ldap://mydomain.bla.blu:389/ou=Productive,dc=mydomain,dc=bla,dc=blu?sAMAccountName?sub?(objectClass=*)"
        AuthLDAPBindDN "CN=user,ou=it,ou=chtu1,ou=ch,ou=Productive,dc=mydomain,dc=bla,dc=blu"
        AuthLDAPBindPassword password
        Require valid-user
    </Location>
Ich denke, in der apache-config müssten auch noch Locations für /otrs/, /OTRS und /OTRS/ hinzugefügt werden ...
Geht man jetzt auf die Seite, so kommt der Login-Dialog (User / Password) vom Apache ... gibt man den richtigen User ein kommt man weiter ...
Das Problem dass ich jetzt noch habe ist, dass der Internet Explorer die "REMOTE_USER" variable nicht an den Apache übergibt :(

Greetz,
Lousek
No current setup - will use the latest one :)
Post Reply