KIX - Forum

Community => Anleitungen => Thema gestartet von: Fabian Seibt am 05.04.2018 14:14:40

Titel: Einrichtungshilfen für Single Sign-On
Beitrag von: Fabian Seibt am 05.04.2018 14:14:40
Die folgenden Beiträge sollen dabei unterstützen, SSO für KIX einzurichten.

Es werden unterschiedliche Varianten aufgezeigt und es ist an manchen Stellen absichtlich allgemein gehalten, damit es jedem so gut wie möglich hilft.

Unabhängig von der Authentifizierungsmethode müssen in den unterschiedlichen Browsern zusätzliche Konfigurationen vorgenommen werden.
Wie z.B.:
Titel: Re: Einrichtungshilfen für Single Sign-On
Beitrag von: Fabian Seibt am 05.04.2018 14:19:16
Variante 1: Kerberos Single-Sign-On (Debian-, Ubuntu-, CentOS- oder SLES-Server)

1. Installation von Kerberos:
z.B. unter Ubuntu mit
apt-get install libapache2-mod-auth-kerb krb5-clients
Paketnamen können in jeweiligen Distributionen variieren!

  1.1 Test ob Kerberos prinzipiell auf KIX Server funktioniert
 
kinit <Domänenbenutzer>@<DOMÄNE>

2. Keytab für Apache erstellen:
Beispiel für Erstellung der Keytab:
C:>ktpass
princ HTTP/<FQDN KIX-Server>@<DOMÄNE>
mapuser <Domänenbenutzer>@<DOMÄNE>
crypto RC4-HMAC-NT
ptype KRB5_NT_PRINCIPAL
pass <Passwort Domänenbenutzer>
out c:\temp\keytab

3. Kerberos Konfiguration:
z.B. (vereinfacht)
[libdefaults]
       default_realm = DOMAIN1.NET
[realms]
       DOMAIN1.NET = {
               kdc = dc1.domain1.net
               kdc = dc2.domain1.net
               admin_server = dc1.domain1.net
       }
[domain_realm]
       .domain1.net = DOMAIN1.NET
       domain1.net = DOMAIN1.NET

4. Apache Konfiguration:

Folgende Eintrage sollten in /etc/apache2/sites-available/zzz_kerb.conf hinzugefügt werden:
LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so
<Directory "/opt/kix/bin/cgi-bin/">
  AllowOverride None
  AuthType Kerberos
  AuthName "KIX"
  Krb5Keytab /etc/apache2/keytabs/kixserver.keytab
  KrbAuthRealms DOMAIN1.NET DOMAIN2.NET
  KrbMethodNegotiate on
  KrbSaveCredentials  off
  KrbMethodK5Passwd on
  Require valid-user
  Order allow,deny
  Allow from all
</Directory>


Anschließend muss noch die Apache-Konfiguration aktiviert werden:

4.1 Keytab vorbereiten:
kinit -k -t <Ordner-Keytab>/KeyTab HTTP/<FQDN KIX Server>
5. KIX Konfiguration:

Folgende Einträge müssen in der <KIX-Home>/Kernel/Config.pm gemacht werden:

für die Authentifizierung der Agenten per SSO ist folgender Eintrag zuständig:
$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
$Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@DOMAIN1.NET';

für die Authentifizierung der Customer sieht der Eintrag wie folgt aus:
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
$Self->{'Customer::AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@DOMAIN1.NET';

Um die Authentifizierung Agenten mehrerer Domänen zu ermöglichen, muss für jede Domäne ein eigener Eintrag gemacht werden (gleiches gilt für die Customer Authentifizierung)
$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
$Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@DOMAIN1.NET';
...
Titel: Re: Einrichtungshilfen für Single Sign-On
Beitrag von: Fabian Seibt am 05.04.2018 14:32:55
Variante 2: NTLM-Authentifizierung gegen Windows-Domäne (Debian/Ubuntu)

Anleitung wird benötigt, wenn Sie in einer Windows Domain arbeiten und KIX auf einem Linux Web-Server läuft (Ziel ist Singe Sign On (SSO) über Windows-Anmeldung)

1.a) Notwendige Konfiguration Firefox:

Mittels "about:config" müssen in den Schlüssel "network.automatic-ntlm-auth.trusted-uris" Komma-separiert die URLs der Webseite für die NTLM-Authentifizierung eingetragen werden.

1.b) Notwendige Konfiguration IE:
2. Notwendige Komponenten auf Web-Server für Apache:
3. Konfiguration /etc/apache2/sites-available/kix.conf:

Unten stehender Block muss in die kix.conf eingefügt und wie folgt ergänzt werden:
<Directory /pfad/zum/verzeichnis>
  Options Indexes -FollowSymLinks -ExecCGI
  IndexOptions FancyIndexing FoldersFirst NameWidth=*
  AllowOverride None
  Order Deny,Allow
  Deny from all
  Allow From xxx.xxx.xxx.xxx/255.255.255.0

  # NTLM v1 Basic Auth against Windows Domain
  PerlAuthenHandler Apache2::AuthenNTLM
  AuthType ntlm,basic
  AuthName NTLMTest
  require valid-user
  PerlAddVar ntdomain "DOMAIN ADSERVER"
  PerlSetVar defaultdomain DOMAIN
  PerlSetVar splitdomainprefix 1
  PerlSetVar ntlmdebug 3
</Directory>


4. KIX Konfiguration:

Folgende Einträge müssen in der <KIX-Home>/Kernel/Config.pm gemacht werden:

für die Authentifizierung der Agenten per SSO ist folgender Eintrag zuständig:
$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
$Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@DOMAIN';


für die Authentifizierung der Customer sieht der Eintrag wie folgt aus:
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
$Self->{'Customer::AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@DOMAIN';


Um die Authentifizierung Agenten mehrerer Domänen zu ermöglichen, muss für jede Domäne ein eigener Eintrag gemacht werden (gleiches gilt für die Customer Authentifizierung)
$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
$Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@DOMAIN1';
...
Titel: Re: Einrichtungshilfen für Single Sign-On
Beitrag von: Fabian Seibt am 05.04.2018 14:39:45
Variante 3: SSPI-Authentifizierung gegen Windows-Domäne (Windows Server)

Diese Anleitung wird benötigt, wenn Sie in einer Windows Domain arbeiten und KIX ebenfalls auf einem Windows Server läuft.

Die Windows Version von KIX nutzt den Plack Web-Server. Dieser unterstützt kein Single Sign On, daher muss in diesem Fall ein Apache Web-Server vorgeschaltet werden, welcher die Anmeldung vornimmt und an den Plack Server übergibt.

1. Installieren von ,,mod_auth_sspi"

2. Erweiterung der Apache Konfiguration
unter /etc/apache2/sites-available/kix.conf:

Folgende Einträge müssen hinzugefügt und entsprechend der Pfade angepasst werden:

LoadModule sspi_auth_module modules/mod_auth_sspi.so
<Directory /PFAD/ZUM/VERZEICHNIS>
    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>


3. KIX Konfiguration:

Folgende Einträge müssen in der <KIX-Home>/Kernel/Config.pm ergänzt werden:

$Self->{'AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
$Self->{'AuthModule::HTTPBasicAuth::Replace'} = 'mydomain\\';