KIX - Forum
Community => Fragen | Konfiguration | Hilfe => Thema gestartet von: ReinhardI am 12.02.2020 09:23:28
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
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.
$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.
@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.
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?
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.
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.