OTOBO / Znuny - Kerberos Single Sign-On(SSO)
Bitte lesen Sie das Kapitel OTOBO Docker Installation 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.
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://
(oderhttps://otobofqdn
)network.negotiate-auth.delegation-uris =
http://
(oderhttps://otobofqdn
)
Debugging und Probleme
Wenn das Kerberos SSO nicht funktioniert, überprüfen Sie bitte zuerst, ob der NGINX-Container gestartet ist:
docker ps
Im nächsten Schritt überprüfen Sie bitte die NGINX-Logs für weitere Informationen:
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')
OTOBO Dienstleistungen
Wir bieten verschiedene Dienstleistungen rund um OTOBO an. Dazu gehören:
- OTOBO Beratung
- OTOBO Installation
- OTOBO Anpassungen
- OTOBO Schulungen
- OTOBO Support
Wenn du Interesse an unseren Dienstleistungen hast, dann schreib uns eine E-Mail an
tab@softoft.deOder erfahre mehr über unsere OTOBO Dienstleistungen