Viewing 5 reply threads
  • Author
    Posts
    • #12153
      Tobias Schöllmann
      Participant

      Otobo-Version: Branch rel 10-1
      Otobo Installationsart: Docker

      Hallo 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.DOMAIN

      Nun 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: 237

      Welcher Key ist hier gemeint? Ich kann mit dem Fehler im Log leider nichts anfangen.

       

    • #12158
      Andreas Erhard
      Participant

      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:

      Weil ich auch einen kleinen Bug gefunden habe, habe ich zusätzlich ein Issue eröffnet:
      https://github.com/RotherOSS/otobo-docker/issues/81

       

      Viele Grüße
      Andreas

      • #12160
        Tobias Schöllmann
        Participant

        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 Example

        Kopie von: https://otobo.de/de/forums/topic/installation-ueber-docker-bricht-beim-mounten-der-krb5-conf-datei-ab/

        Dabei 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.

        https://otobo.de/wp-content/uploads/hm_bbpui/12160/24ewusmamg21d2adeh981cxh9t95i71f.png

        https://otobo.de/wp-content/uploads/hm_bbpui/12160/6f1f1fcx1vyjmii2rgd644qil8v4z9b3.png

         

    • #12182
      alexander-fuhr
      Participant

      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

       

      • #12188
        Tobias Schöllmann
        Participant

        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.

    • #12192
      bes
      Participant

      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

       

    • #12201
      Tobias Schöllmann
      Participant

      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.

    • #12203
      bes
      Participant

      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

       

Viewing 5 reply threads
  • You must be logged in to reply to this topic.