OTOBO - Kerberos Single Sign-On - Benutzer SSO

Bitte lesen Sie das Kapitel OTOBO Docker Installationopen in new window für grundlegende Informationen über die Installation und Konfiguration von OTOBO.

Dieses Tutorial setzt voraus, dass OTOBO mithilfe von Docker installiert und konfiguriert wurde.

Notiz

Im Folgenden beziehen wir uns auf AD (Active Directory), natürlich ist die Kerberos-Konfiguration auch unter LDAP möglich.

Active Directory Benutzer

Bitte erstellen Sie einen neuen Active Directory-Benutzer mit den folgenden Einstellungen und speichern Sie die markierten Einstellungen:

Notiz

Bitte verwenden Sie als Benutzernamen nur diese Syntax:

HTTP/fqdn.from.your.otobo.de fqdn.from.your.otobo.de muss ein A-Record DNS-Eintrag sein, kein CNAME! Im nächsten Schritt ist es auch möglich, andere URLs für OTOBO zu verwenden, sie müssen dann als CNAME auf unseren oben definierten A-Record zeigen.

Der Benutzernamenteil "HTTP/" sollte in Großbuchstaben geschrieben werden, da Kerberos es so erwartet. Das Passwort funktioniert nicht ordnungsgemäß mit einigen Sonderzeichen (z.B. '&'). Sie müssen einen separaten AD-Benutzer erstellen. Sie können nicht denjenigen verwenden, den Sie bereits für Ihre LDAP/AD-Synchronisation verwenden.

OTOBO Install Kerberos SSO
OTOBO Install Kerberos SSO []

Active Directory Keytab-Datei

Im nächsten Schritt verbinden wir uns mit einem Domain-Controller des Active Directory und öffnen dort eine Konsole ( cmd) mit Administratorrechten.

Nun verwenden wir das Tool ktpass.exe um die benötigte Keytab-Datei zu generieren:


ktpass.exe -princ HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL -mapuser OTRS\otrs32-centos6 -crypto All -pass Password -ptype KRB5_NT_PRINCIPAL -out c:\krb5.keytab

  • -princ = HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL -> Bildnummer 1+@+Bildnummer 2
  • -mapuser = OTRSotrs32-centos6 (Benutzername prä Win 2000) -> -> Bildnummer 3++Bildnummer
  • -pass = Passwort des Benutzers otrs32-centos6 (Active Directory Benutzer)
  • -out = c:/krb5.keytab

Notiz

Bitte schreiben Sie die Domain (@OTRS.LOCAL) immer in Großbuchstaben. Das Passwort darf einige Sonderzeichen nicht enthalten.

Im nächsten Schritt verschieben Sie bitte die krb5.keytab-Datei auf den OTOBO-Server:


# Neues Verzeichnis erstellen

docker_admin> mkdir /opt/otobo-docker/nginx-conf
# Die Datei krb5.keytab in das neue Verzeichnis verschieben (Achtung, je nachdem, wo Sie die krb5.conf-Datei platziert haben, ändert sich der folgende Befehl.)

docker_admin> mv ?/krb5.keytab /opt/otobo-docker/nginx-conf/krb5.keytab

Volume für nginx-Konfiguration


docker volume create otobo_nginx_custom_config

otobo_nginx_custom_config_mp=$(docker volume inspect --format '{{ .Mountpoint }}' otobo_nginx_custom_config)

docker create --name tmp-nginx-container rotheross/otobo-nginx-webproxy:latest-10_1 (achtung: Versionsnummer)

docker cp tmp-nginx-container:/etc/nginx/templates /tmp

docker cp tmp-nginx-container:/etc/nginx/templates/otobo_nginx-kerberos.conf.template.hidden $otobo_nginx_custom_config_mp/otobo_nginx.conf.template

docker rm tmp-nginx-container

vim docker-compose/otobo-nginx-custom-config.yml


COMPOSE_FILE => 

docker-compose/otobo-nginx-custom-config.yml

NGINX_ENVSUBST_TEMPLATE_DIR=/etc/nginx/config/template-custom

OTOBO .env-Datei

Zuerst müssen wir die alte Datei /opt/otobo-docker/.env nach .env.tmp verschieben und eine neue .env-Datei einschließlich der Kerberos-Einstellungen erstellen.


# OTOBO-Container stoppen, falls sie laufen

docker_admin>cd /opt/otobo-docker

docker_admin>docker-compose down

# ein Backup der alten .env-Datei erstellen

docker_admin>mv /opt/otobo-docker/.env /opt/otobo-docker/.env.tmp

# eine neue Backup-Datei inklusive Kerberos-Einstellungen erstellen

docker_admin>cp /opt/otobo-docker/.docker_compose_env_https_kerberos /opt/otobo-docker/.env

Nun kopieren Sie Ihre bestehenden Konfigurationsoptionen in die neue .env-Datei (mindestens OTOBO_DB_ROOT_PASSWORD, OTOBO_NGINX_SSL_CERTIFICATE, OTOBO_NGINX_SSL_CERTIFICATE_KEY) und fügen die folgenden Kerberos-Einstellungen hinzu:

Kerberos keytab

OTOBO_NGINX_KERBEROS_KEYTAB=/opt/otobo-docker/nginx-conf/krb5.keytab

Kerberos config (Wichtig, bitte diese Option wie hier auskommentieren!) # In der Standardkonfiguration wird die krb5.conf-Datei automatisch generiert #

OTOBO_NGINX_KERBEROS_CONFIG=/opt/otobo-docker/nginx-conf/krb5.conf

Kerberos Dienstname

OTOBO_NGINX_KERBEROS_SERVICE_NAME=HTTP/otrs32-centos6.otrs.local # -> Bildnummer 1

Kerberos REALM

OTOBO_NGINX_KERBEROS_REALM=ROTHER-OSS.COM -> OTRS.LOCAL # -> Bildnummer 2

Active Directory-Domain-Controller / Kerberos kdc

OTOBO_NGINX_KERBEROS_KDC=

Active Directory-Domain-Controller / Kerberos Admin-Server

OTOBO_NGINX_KERBEROS_ADMIN_SERVER=rother-oss.com

Kerberos Standard-Domain

OTOBO_NGINX_KERBEROS_DEFAULT_DOMAIN=otrs.local

OTOBO starten

Nach der anfänglichen Kerberos-Konfiguration starten wir OTOBO erneut:


# OTOBO mit docker-compose starten

docker_admin> docker-compose up -d

Kerberos-Authentifizierung verwenden

Falls Sie AD-Authentifizierung konfiguriert haben, deaktivieren Sie diese (z.B. durch Auskommentieren der entsprechenden Zeilen in Ihrer Kernel/Config.pm). Die Authentifizierung erfolgt nicht mehr über LDAP.

Um die Kerberos-Authentifizierung zu verwenden, nehmen Sie die Kerberos-Zeilen aus Kernel/Config/Defaults.pm und setzen Sie diese in Ihre Kernel/Config.pm. Z.B. könnten diese Zeilen funktionieren:


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

# Falls Sie einen Teil des REMOTE_USER ersetzen müssen, können Sie

# die folgende RegExp verwenden ($1 wird zum neuen Login).

$Self->{'AuthModule::HTTPBasicAuth::ReplaceRegExp'} = '^(.+?)@.+?$';

Browser konfigurieren

Damit SSO funktioniert, muss der Browser entsprechend konfiguriert werden.

Chrome, Edge, Internet Explorer, etc.

Fügen Sie die Seite zu den lokalen oder vertrauenswürdigen Seiten hinzu und aktivieren Sie 'Integrierte Windows-Authentifizierung' (Internetoptionen).

Firefox

Geben Sie about:config in die Firefox-Adresszeile ein

und ändern Sie die folgenden Einstellungen:

  • network.negotiate-auth.trusted-uris = https:// (oder https://otobofqdn)

  • network.negotiate-auth.delegation-uris = http:// (oder https://otobofqdn)

Debugging und Probleme

Wenn das Kerberos SSO nicht funktioniert, überprüfen Sie bitte zuerst, ob der NGINX-Container gestartet ist:


# Container überprüfen

docker_admin> docker ps

Im nächsten Schritt überprüfen Sie bitte die NGINX-Logs für weitere Informationen:


# NGINX-Logs überprüfen

docker_admin> docker logs otobo_nginx_1 -f

Wenn NGINX läuft, loggen Sie sich bitte in den NGINX-Container ein und überprüfen Sie alle benötigten Dateien:


# In den NGINX-Container einloggen

docker_admin> docker exec -it otobo_nginx_1 bash

# Jetzt überprüfen Sie bitte, ob die krb5.conf-Datei mit Ihren benötigten Werten existiert

nginx_root> cat /etc/krb5.conf

# Jetzt überprüfen Sie bitte, ob die krb5.keytab-Datei existiert

nginx_root> cat /etc/krb5.keytab

# Wenn nicht, bitte verlassen Sie den Container und kopieren Sie die Datei erneut mit docker

docker_admin> docker cp /opt/otobo-docker/nginx-conf/krb5.keytab otobo_nginx_1:/etc/krb5.keytab

Kerberos-Debugging


# In den NGINX-Container einloggen

docker_admin> docker exec -it otobo_nginx_1 bash

Nun können Sie die Kerberos-Einstellungen debuggen. Beispiele:


env KRB5_TRACE=/dev/stdout kvno HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL

klist -e


kinit -VV -k -t /etc/krb5.keytab HTTP/otrs32-centos6.otrs.local@OTRS.LOCAL


kinit username@OTRS.LOCAL

Falls es scheinbar funktioniert, dass sich authentifiziert wird, aber der Agent ist noch nicht in der Datenbank, dann funktioniert Ihr Sync (falls implementiert) möglicherweise nicht. Ein Fehler 52e (Erster Bind fehlgeschlagen) deutet darauf hin, dass etwas mit Ihrem Suchbenutzer nicht stimmt. Dies passiert, wenn Sie denselben Benutzer für den AD-Sync und als SSO-Benutzer verwenden. Bitte verwenden Sie separate AD-Benutzer dafür. Um nicht eine neue keytab erstellen zu müssen und die oben genannten Schritte zu wiederholen, könnte es einfacher sein, einen neuen Benutzer für Ihren AD-Sync zu erstellen (wahrscheinlich in Ihrer Kernel/Config.pm).

Falls SSO nicht ordnungsgemäß funktioniert, stellen Sie sicher, dass: * der Benutzer, für den es nicht funktioniert, im Active Directory ist * das System im Domain ist * es ordnungsgemäß als vertrauenswürdige Seite angegeben ist (siehe ' Browser konfigurieren, um Kerberos SSO zu verstehen')

Zuletzt aktualisiert:
Autoren: Tobi Bueck

Probiere OTOBO mit unserer Demo

Du möchtest OTOBO ausprobieren? Kein Problem! Nutze unsere Demo-Instanz und teste OTOBO als Kundenbenutzer, Agent oder Administrator.

In Demo einloggen als:

Sources

[1] Image source: OTRS AG (https://otrs.com), modified by ROTHER OSS GmbH (https://otobo.de). Licensed under the GNU Free Documentation License, Version 1.3 or later. No Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
OTOBO Beratung | Impressum | Datenschutz

This work is copyrighted by OTRS AG (https://otrs.com), Zimmersmühlenweg 11, 61440 Oberursel, Germany. Copyright © for modifications and amendments 2019-2020 ROTHER OSS GmbH (https://otobo.de), Oberwalting 31, 94339 Leiblfing, Germany Terms and Conditions OTRS: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found on the GNU website. Terms and Conditions Rother OSS: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.