Hauptmenü

SSO Konfiguration und Login

Begonnen von ReinhardI, 12.02.2020 09:23:28

⏪ vorheriges - nächstes ⏩

ReinhardI

Hallo


wir sind frische KIX Anwender und hängen nun leider bei der SSO Konfiguration. Wir sind nach der Anleitung https://forum.kixdesk.com/index.php?topic=817.0 die Variante 1 (SSO via Kerberos) vorangegangen, jedoch scheitern wir am Login mit einem Agenten. In der Config.pm stehen die Einträge

$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
$Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@<UNSERE INTERNE DOMÄNE>';


SPN ist vorhanden und Kinit funktioniert ebenfalls.


Dennoch funktioniert der Login nicht. Wie ist der Account im KIX anzulegen?


Danke Vorab für jeden Hinweis
Wir verwenden die aktuelleste KIX Pro Version 17.9.1 mit den Modulen ITSM und KANBAN unter Ubuntu 18.04 LTS

ReinhardI


Ich bin nun einen Schritt weiter, da ich eine schöne Fehlermeldung im Apache Error.log erhalte.


[Thu Feb 13 06:25:02.462091 2020] [core:notice] [pid 28794] AH00094: Command line: '/usr/sbin/apache2'
ERROR: KIX-CGI-17 Perl: 5.26.1 OS: linux Time: Thu Feb 13 07:44:00 2020
Message: Need User!
RemoteAddress: 10.1.101.181
RequestURI: /kix/index.pl
Traceback (55926):
   Module: Kernel::System::Auth::LDAP::Auth Line: 125
   Module: Kernel::System::Auth::Auth Line: 163
   Module: Kernel::System::Web::InterfaceAgent::Run Line: 230
   Module: ModPerl::ROOT::ModPerl::Registry::opt_kix_bin_cgi_2dbin_index_2epl::handler Line: 40
   Module: (eval) (v1.99) Line: 207
   Module: ModPerl::RegistryCooker::run (v1.99) Line: 207
   Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 173
   Module: ModPerl::Registry::handler (v1.99) Line: 32
ERROR: KIX-CGI-17 Perl: 5.26.1 OS: linux Time: Thu Feb 13 07:44:00 2020
Message: Need User!
RemoteAddress: 10.1.101.181
RequestURI: /kix/index.pl
Traceback (55926):
   Module: Kernel::System::Auth::DB::Auth Line: 83
   Module: Kernel::System::Auth::Auth Line: 163
   Module: Kernel::System::Web::InterfaceAgent::Run Line: 230
   Module: ModPerl::ROOT::ModPerl::Registry::opt_kix_bin_cgi_2dbin_index_2epl::handler Line: 40
   Module: (eval) (v1.99) Line: 207
   Module: ModPerl::RegistryCooker::run (v1.99) Line: 207
   Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 173
   Module: ModPerl::Registry::handler (v1.99) Line: 32
ERROR: KIX-CGI-17 Perl: 5.26.1 OS: linux Time: Thu Feb 13 07:44:00 2020
Message: Need UserLogin or UserID!
RemoteAddress: 10.1.101.181
RequestURI: /kix/index.pl
Traceback (55926):
   Module: Kernel::System::User::UserLookup Line: 934
   Module: Kernel::System::Auth::Auth Line: 258
   Module: Kernel::System::Web::InterfaceAgent::Run Line: 230
   Module: ModPerl::ROOT::ModPerl::Registry::opt_kix_bin_cgi_2dbin_index_2epl::handler Line: 40
   Module: (eval) (v1.99) Line: 207
   Module: ModPerl::RegistryCooker::run (v1.99) Line: 207
   Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 173
   Module: ModPerl::Registry::handler (v1.99) Line: 32
Im Anhang noch die Config.pm. Ich habe verschiedenste Foren, auch OTRS bezogen, durchgeforstet, jedoch fehlt mir der entscheidende Hinweis. Auch ist mir noch unklar, wie die Agentenanlage mit LDAP durchzuführen ist.


Ich bin dankbar für jeden Hinweis.

Marvin G. - FZJ


$Self->{'AuthModule::LDAP::SearchUserPw1'} = 'ldapsearchuserpw;


Vielleicht liegts an dem fehlenden '? Oder ist das nur beim anpassen jetzt raus gerutscht?





Falls dir das hilft, hier mal unsere Konfiguration. Vielleicht noch als kurze Anmerkung, wir haben die Konfiguration zwecks Übersichtlichkeit in eine eigene Datei ZZZAgents.pm im unterordner Files gepackt.



    #--------------------------------------------------------------------------------------------
    #                                 Local Accounts                                             #
    #--------------------------------------------------------------------------------------------
    $Self->{'AuthModule5'} = 'Kernel::System::Auth::DB';
    $Self->{'AuthModule::DB::CryptType5'} = 'crypt';
    #--------------------------------------------------------------------------------------------
    #                                   Agenten Authentifizeirung                               #
    #--------------------------------------------------------------------------------------------
    $Self->{UserSearchListLimit} = 1000;
    $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'} = ['ldaps://dc1.domain.de','ldaps://dc2.domain.de','ldaps://dc3.domain.de'];
    $Self->{'AuthModule::LDAP::BaseDN'} = 'DC=ad,DC=domain,DC=de';
    $Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'AuthModule::LDAP::GroupDN'} = 'CN=GruppeFuerunsereAgenten,DC=ad,DC=domain,DC=de';
    $Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
    $Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=AccountExtrafuerKIX,OU=LDAP,OU=Accounts,DC=ad,DC=domain,DC=de';
    $Self->{'AuthModule::LDAP::SearchUserPw'} = 'PasswortFuerDenAccountimKlartext';
    $Self->{'AuthModule::LDAP::Params'} = {
       port => 636,
       timeout => 120,
       async => 0,
       version => 3,
       SourceCharset => 'utf-8',
       DestCharset => 'utf-8',
    };


    #--------------------------------------------------------------------------------------------
    #                                   agent data sync against ldap                            #
    #--------------------------------------------------------------------------------------------
    $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'} = ['ldaps://dc1.domain.de','ldaps://dc2.domain.de','ldaps://dc3.domain.de'];
    $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'DC=ad,DC=domain,DC=de';
    $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'member';
    $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=AccountExtrafuerKIX,OU=LDAP,OU=Accounts,DC=ad,DC=domain,DC=de';
    $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'PasswortFuerDenAccountimKlartext';
    $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
    UserFirstname => 'givenName',
    UserLastname  => 'sn',
    UserEmail     => 'mail',
    };



Die DC's usw. sollten natürlich angepasst werden. Vielleicht hilft dir das ja.
Bei uns werden die Agenten beim ersten Login im KIX angelegt.

ReinhardI

@m.greune ldapsearchuserpw war ein Tippfehler bei der Übernahme.
Leider habe ich nach wie vor den gleichen Status.


Da ich mich mit Linux noch zu wenig auskenne, kann ich mir auch vorstellen, da irgendwelche Voraussetzung fehlen zb. libs
Die meisten Dokumentationen die ich im Internet gefunden haben beziehen sich auf Ubuntu 16.x, wir haben Ubuntu 18.04 LTS im Einsatz. Möglicherweise macht das einen Unterschied.


Aus der Sicht meines Vorgesetzten sollte das ein Routinetask mit wenig Aufwand sein.

Marvin G. - FZJ

Wir nutzen ebenfalls 18.04 LTS und haben keine Probleme. Auch werden alle Pakete automatisch installiert, die benötigt werden.

Dein Log sagt ja auch:  Message: Need User!

Demnach würde ich sagen, funktioniert die Verbindung zum AD einfach nicht. Hast du dort mal im Log geschaut, ob dort z.B. fehlerhafte Anmeldeversuche stattfinden? Oder hast du den Account, den du hierfür nutzt generell mal geprüft?

ReinhardI

die Verbindung zu AD ist vorhanden und funktioniert. Das habe ich mit kinit -VV -k -t /etc/apache2/keytabs/tkix.keytab HTTP/tkix.maco.local@ADDOMAIN getestet.
Wenn ich den Browser via Fiddler zum tracen aufrufe, ist ersichtlich, das kein 401 erfolgt und damit keine Authentifizierung angefordert wird. Im IE sind jedoch die notwendigen Settings gesetzt. Auf anderen internen Webseiten ist der 401 ersichtlich.


Für mich ist offen, ob der Fehler nun im Kerberos oder im Apache steckt.

Beatrice Müller

Lösung aus dem Supportticket:

Die Variable REMOTE_USER hat gefehlt. Es mussten die Konfigurationsdateien zzz_kerb.conf und kix.conf angepasst werden. Diese hatten überschneidende Werte für die Location /kix.

kix.conf:
<IfModule mod_perl.c>
     # Setup environment and preload modules
    Perlrequire /opt/kix/scripts/apache2-perl-startup.pl


    # Reload Perl modules when changed on disk
    PerlModule Apache2::Reload
    PerlInitHandler Apache2::Reload


    # general mod_perl2 options
    <Location /kix>
#        ErrorDocument 403 /kix/customer.pl
        ErrorDocument 403 /kix/index.pl
        SetHandler  perl-script
        PerlResponseHandler ModPerl::Registry
        Options +ExecCGI
        PerlOptions +ParseHeaders
        PerlOptions +SetupEnv
    </Location>


    # mod_perl2 options for GenericInterface
    <Location /kix/nph-genericinterface.pl>
        PerlOptions -ParseHeaders
    </Location>


</IfModule>
Im Location Abschnitt wurden alle Einträge für Authentifizierung entfernt.
Der Directory Abschnitt ist unverändert.

zzz_kerb.conf: <Location /kix>
  AuthType Kerberos
  AuthName "KIX"
  KrbServiceName HTTP/xxx.xxx.local
  Krb5Keytab /etc/apache2/keytabs/tkix.keytab
  KrbAuthRealms XXX.LOCAL
  KrbMethodNegotiate On
  KrbSaveCredentials  Off
  KrbMethodK5Passwd On
  KrbVerifyKDC On
  Require valid-user
</Location>
Hier sind die Authentifizierungssachen enthalten. Größte Änderung ist hier der Wegfall von ,,require all granted"
"Require valid-user" ist ausreichend.