Schlagwörter: Kerberos, LDAP, Need Key, Single-Sign-On, SSO
-
AutorBeiträge
-
-
23. November 2021 um 16:17 Uhr - Views: 2312 #12153
Otobo-Version: Branch rel 10-1
Otobo Installationsart: DockerHallo zusammen, ich habe vor kurzem die Installation von Otobo über Docker https-kerberos erfolgreich abgeschlossen. Ich bin aktuell dabei unser Active Directory in Otobo zu integrieren. Die LDAP Authentifizierung funktioniert dabei einwandfrei. Nun möchte ich zusätzlich die Möglichkeit haben, dass unsere Nutzer den Anmeldebildschirm mit Hilfe von Single Sign On überspringen können.
Die Keytab Datei habe ich über unseren Domain Controller erstellt und in der Otobo VM mit erfolg getestet. Zusätzlich habe ich die /etc/krb5.conf entsprechend angepasst.
(Quelle: http://otrshowto.blogspot.com/)Beim erstellen der Docker .env habe ich neben der in der Anleitung angegeben Werte, folgendes angepasst:
OTOBO_NGINX_SSL_CERTIFICATE=/etc/nginx/ssl/nginx-selfsigned.crt
OTOBO_NGINX_SSL_CERTIFICATE_KEY=/etc/nginx/ssl/nginx-selfsigned.key# Kerberos Options
# Kerberos keytab
OTOBO_NGINX_KERBEROS_KEYTAB=/opt/otobo-docker/nginx-conf/krb5.keytab# Kerberos config
OTOBO_NGINX_KERBEROS_CONFIG=/opt/otobo-docker/nginx-conf/krb5.conf# Kerberos Service Name
OTOBO_NGINX_KERBEROS_SERVICE_NAME=HTTP/OTOBO-SERVER@UNSERE.DOMAIN# Kerberos REALM
OTOBO_NGINX_KERBEROS_REALM=UNSERE.DOMAIN# Kerberos kdc / AD Controller
OTOBO_NGINX_KERBEROS_KDC=AD-CONTROLLER-DNS-NAME# Kerberos Admin Server
OTOBO_NGINX_KERBEROS_ADMIN_SERVER=AD-CONTROLLER-DNS-NAME# Kerberos Default Domain
OTOBO_NGINX_KERBEROS_DEFAULT_DOMAIN=UNSERE.DOMAINNun habe ich folgendes Problem:
Ich habe in die Config.pm zusätzlich zu der LDAP Auth folgendes Modul hinzugefügt:
(Quelle: https://doc.otrs.com/doc/manual/admin/6.0/en/html/external-backends.html#agent-auth-backend-httpbasic)$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
$Self->{'Customer::AuthModule::HTTPBasicAuth::ReplaceRegExp'} ='@UNSERE.DOMAIN';Wenn ich nun die Customer Login Seite aufrufe. Kommt direkt die Meldung “Benutzername oder Kennwort falsch”
im log steht folgendes:web_1 | ERROR: OTOBO-CGI-54 Perl: 5.32.1 OS: linux Time: Tue Nov 23 14:29:37 2021
web_1 |
web_1 | Message: Need Key!
web_1 |
web_1 | RemoteAddress: <MEINE IP-ADRESSE>
web_1 | RequestURI: /otobo/customer.pl
web_1 |
web_1 | Traceback (18):
web_1 | Module: Kernel::System::Cache::Get Line: 295
web_1 | Module: Kernel::System::Web::InterfaceCustomer::_StoreFailedLogins Line: 1510
web_1 | Module: Kernel::System::Web::InterfaceCustomer::Run Line: 354
web_1 | Module: Plack::Sandbox::_2fopt_2fotobo_2fbin_2fpsgi_2dbin_2fotobo_2epsgi::__ANON__ Line: 587
web_1 | Module: CGI::Emulate::PSGI::__ANON__ (v0.23) Line: 30
web_1 | Module: Plack::Middleware::HTTPExceptions::try {…} Line: 20
web_1 | Module: (eval) (v0.30) Line: 100
web_1 | Module: Try::Tiny::try (v0.30) Line: 93
web_1 | Module: Plack::Middleware::HTTPExceptions::call Line: 23
web_1 | Module: Plack::Component::__ANON__ Line: 50
web_1 | Module: Plack::Sandbox::_2fopt_2fotobo_2fbin_2fpsgi_2dbin_2fotobo_2epsgi::__ANON__ Line: 393
web_1 | Module: Plack::Sandbox::_2fopt_2fotobo_2fbin_2fpsgi_2dbin_2fotobo_2epsgi::__ANON__ Line: 318
web_1 | Module: Plack::Middleware::ForceEnv::call (v0.02) Line: 18
web_1 | Module: Plack::Component::__ANON__ Line: 50
web_1 | Module: Plack::Middleware::ReverseProxy::call (v0.16) Line: 68
web_1 | Module: Plack::Component::__ANON__ Line: 50
web_1 | Module: Plack::Middleware::Conditional::call Line: 16
web_1 | Module: Plack::Component::__ANON__ Line: 50
web_1 | Module: Plack::Middleware::ErrorDocument::call Line: 15
web_1 | Module: Plack::Component::__ANON__ Line: 50
web_1 | Module: Plack::App::URLMap::call Line: 71
web_1 | Module: Plack::Component::__ANON__ Line: 50
web_1 | Module: Plack::Middleware::Conditional::call Line: 16
web_1 | Module: Plack::Component::__ANON__ Line: 50
web_1 | Module: Plack::Sandbox::_2fopt_2fotobo_2fbin_2fpsgi_2dbin_2fotobo_2epsgi::__ANON__ Line: 358
web_1 | Module: (eval) Line: 145
web_1 | Module: Plack::Util::run_app Line: 145
web_1 | Module: Plack::Handler::Gazelle::__ANON__ (v0.49) Line: 220
web_1 | Module: Parallel::Prefork::start (v0.18) Line: 75
web_1 | Module: Plack::Handler::Gazelle::run (v0.49) Line: 237Welcher Key ist hier gemeint? Ich kann mit dem Fehler im Log leider nichts anfangen.
-
24. November 2021 um 13:12 Uhr #12158
Hallo Tobias,
kannst Du bitte mal schauen, ob der NGINX bei Dir überhaupt Kerberos aktiviert hat?
Ich stehe aktuell vor einem ähnlichen Problem und versuche aktuell OTOBO unter Docker mit Kerberos zum Laufen zu bekommen.Vielleicht hilft dir mein Post hier etwas weiter:
https://otobo.io/de/forums/topic/installation-ueber-docker-bricht-beim-mounten-der-krb5-conf-datei-ab/Weil ich auch einen kleinen Bug gefunden habe, habe ich zusätzlich ein Issue eröffnet:
https://github.com/RotherOSS/otobo-docker/issues/81Viele Grüße
Andreas-
24. November 2021 um 14:49 Uhr #12160
Hallo Andreas, danke für die Antwort.
Ich hatte auch schon mal getestet in die
/etc/nginx/nginx.conf
* mal die Zeilen einzutragen, die du in deinem Post geschrieben hast.*Nicht in die
/etc/nginx/conf.d/otobo_nginx.conf
.Sonst werden die Zeilen nach einem nginx Neustart wieder in die Default Einstellungen geändert (auskommentiert)!location / {
# Example to use Kerberos SSO
# proxy_set_header REMOTE_USER $remote_user;
auth_gss on;
auth_gss_keytab ${OTOBO_NGINX_KERBEROS_KEYTAB};
auth_gss_service_name HTTP/server.MY.DOMAIN;
auth_gss_realm MY.DOMAIN;
auth_gss_allow_basic_fallback on;
# EO Kerberos SSO ExampleDabei hat aber die Umgebungsvariable “${OTOBO_NGINX_KERBEROS_KEYTAB};” nicht funktioniert. Ich habe dann mal getestet den absoluten Pfad (etc/krb5.keytab) anzugeben. Beim Öffnen wurde mir dann von Google Chrome bzw. MS Edge ein Popup angezeigt, wo ich einen Benutzernamen und ein Passwort eingeben konnte. Das Passwort und der Benutzername wurde auch akzeptiert und aufgelöst. Nach der Eingabe war ich allerdings wieder im Customer Login, wo mir erneut “Benutzername oder Passwort falsch” angezeigt wurde.
-
-
26. November 2021 um 14:43 Uhr #12182
Hallo Tobias,
wie hast Du geschafft die Datei /etc/nginx/nginx.config zu überschreiben? Die Änderungen werden bei mir nach nginx reboot wieder zurückgesetzt. Hast Du zufällig schon einen Lösung gefunden?
Grüß
Alexander
-
29. November 2021 um 8:20 Uhr #12188
Hallo Alexander, ich habe bis jetzt noch keine Lösung für Single Sign On gefunden.
Die /etc/nginx/nginx.conf wird bei mir nach einem Neustart nicht zurückgesetzt. Das passiert bei mir nur bei der /etc/nginx/conf.d/otobo_nginx.conf.
Ich habe folgenden Teil aus der /etc/nginx/conf.d/otobo_nginx.conf kopiert:
… und in die /etc/nginx/nginx.conf eingefügt. Danach habe ich noch den genauen Pfad der krb5.keytab angegeben, weil die Umgebungsvariable nicht funktioniert hat und vor dem auth_gss-Teil das “#” entfernt:
Nach der Änderung habe ich Nginx mit dem Befehl:
docker restart otobo_nginx_1
neu gestartet. Die Datei wurde dabei nicht zurückgesetzt.Ich habe bis jetzt auch noch keine Dokumentation oder Anleitung gefunden, wo die Konfiguration von Single Sign On vollständig erklärt wurde.
-
-
29. November 2021 um 13:11 Uhr #12192
Bei der Konfiguration von SSO mit Kerberos gibt es anscheinend mehrere Probleme. Die Sache mit OTOBO_NGINX_KERBEROS_KEYTAB ist besonders komisch. Ich habe das mal als Issue angelegt und forsche da bei Gelegenheit nach. Siehe https://github.com/RotherOSS/otobo/issues/1462 .
Ansonsten gibt es da noch das Issue https://github.com/RotherOSS/otobo-docker/issues/81, in dem ich aus meiner Sicht die nächsten Schritte eingepflegt habe.
Ich selber habe keine Erfahrung mit Kerberos. Deshalb stellt sich mir dir Frage ob man neben /etc/nginx/conf.d/otobo_nginx.conf noch andere Dateien anpassen muss. Wie sind da die Erfahrungen?
Viele Grüße,
Bernhard
-
30. November 2021 um 14:53 Uhr #12201
Hallo Bernhard,
ich habe das Projekt erstmal pausiert, bis eine offizielle Anleitung oder ein Fix für das Problem veröffentlicht wurde (Ich hoffe das dazu in kürze etwas erscheint, wegen den Issues auf Github).
Ggf. setze ich den Server dann erneut auf.
Angepasst habe ich folgende Dateien (wie gesagt, ohne Erfolg. Es kann sehr wahrscheinlich sein, dass mir hier schon ein grober Fehler unterlaufen ist. Ich bin absoluter Anfänger was Docker, Kerberos und Otobo betrifft):
- krb5.keytab erstellt und auf Otobo Server übertragen (mit FTP nach /etc) -> PowerShell auf dem DC öffnen und folgenden Befehl nach euren Vorgaben eingeben:
ktpass -princ HTTP/OTOBO-SERVER-HOSTNAME@UNSERE-DOMAIN -mapuser AD-BENUTZER@UNSERE-DOMAIN -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -mapop set -pass AD-BENUTZER-PASSWORT -out c:\temp\krb5.keytab
- /etc/krb5.conf angepasst (Schritt 3): http://otrshowto.blogspot.com/
- .env Datei angepasst wie oben beschrieben
- LDAP nach dieser Anleitung integriert: http://www.nerd.junetz.de/blogbox/index.php?/archives/613-OTRS-Anbindung-ans-Active-Directory.html
- HTTPBasicAuth in der Config.pm aktiviert (im Docker Container otobo_web_1) :
$Self->{‘Customer::AuthModule’} = ‘Kernel::System::CustomerAuth::HTTPBasicAuth’;
$Self->{‘Customer::AuthModule::HTTPBasicAuth::ReplaceRegExp’} =’@UNSERE.DOMAIN’; - Nach Installation im Nginx Docker Container (otobo_nginx_1) die /etc/nginx/nginx.conf wie auf den Bildern gezeigt.
Über den Shell Befehl
docker exec -it CONTAINERNAME /bin/bash
kommt man in die Console des Containers falls diese Info jemand benötigt. - krb5.keytab erstellt und auf Otobo Server übertragen (mit FTP nach /etc) -> PowerShell auf dem DC öffnen und folgenden Befehl nach euren Vorgaben eingeben:
-
1. Dezember 2021 um 14:22 Uhr #12203
Hallo Tobias,
ja, das klingt nachvollziehbar. Von meiner Seite kann ich ein paar Stolpersteine in Bezug auf Docker und Docker Compose wegräumen. Aber Kerberos selbst habe ich noch nicht konfiguriert. Da muss dann jemand ran, der das schon öfter gemacht hat.
Viele Grüße,
Bernhard
-
5. Oktober 2022 um 14:03 Uhr #13933
Hi,
endlich bin ich dazu gekommen die Doku zu verfassen. So wie hier hinterlegt, habe ich schon einige Systeme konfiguriert:
https://doc.otobo.org/manual/installation/10.1/en/content/sso-kerberos.html
Schöne Grüße,
Stefan Rother
Team OTOBO
-
22. November 2022 um 11:42 Uhr #14295
Hallo Stefan,
danke für die Dokumentation.
Ich habe allerdings noch eine Frage dazu:
Bei dem Schritt “Create a new Volume for your custom nginx configuration” soll im letzten Schritt des ersten Absatzes der Befehl
vim docker-compose/otobo-nginx-custom-config.yml
aufgeführt werden. In welchem Pfad befindet sich die Datei?Unter
/opt/otobo-docker/docker-compose/
befindet sich eineotobo-nginx-custom-config.yml
wo bereits einige Parameter drin stehen. Soll dieser Teil:COMPOSE_FILE =>
docker-compose/otobo-nginx-custom-config.yml
NGINX_ENVSUBST_TEMPLATE_DIR=/etc/nginx/config/template-customDort angehangen werden oder soll die Datei ersetzt werden?
-
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.