• Deutsch
  • English
  • Anmeldung OTOBO Community
+49 (0)9427 68 39 000
OTOBO
  • SOFTWARE
    • Software | Überblick
    • IT Service Management
    • Customer Service Management
    • Enterprise Service Management
    • Demo
    • Download
    • Dokumentation
  • SERVICES
    • Überblick Services
    • Beratung
    • Training
    • Entwicklung
    • OTRS Migration zu OTOBO
    • Support
    • Managed Service
    • Support-Portal
  • UNTERNEHMEN
    • Über uns
    • Karriere
    • Partner
    • Kontakt
    • Newsletter
  • RESSOURCEN
  • COMMUNITY
    • Open Source
    • Community Forum
    • Download
    • Dokumentation
    • OTOBO übersetzen
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
Ansicht von 2 Antwort-Threads
  • Autor
    Beiträge
    • 15. Juli 2026 um 12:46 Uhr - Views: 144 #42276
      marcel-graf
      Teilnehmer

        Hallo Zusammen,

        wir haben Testweise die Agent Anmeldung bei unserem Test Otobo über OpenIDConnect (Microsoft Entra) per Kernel/Config.pm eingerichtet.

        Folgender Code haben wir dazu eingefügt und können uns entsprechend der Freigabeeinstellungen in der App-Registrierung / Enterprise Appl. einloggen.

        Was uns aufgefallen ist, wenn ein User die Agent URL öffnet, wird dieser User als Agent direkt angelegt, auch wenn dieser vorhanden ist, aber der Benutzeranmeldename nicht mit dem Entra/Azure Namen übereinstimmt.

        Über die Config.pm konnte ich das bisher nicht lösen, von daher hgaben wir jetzt die App per Gruppe eingeschränkt, sodass nicht berechtigte User eine Microsoft Meldung bekommen. Falls der Name noch immer nicht übereinstimmt, wird dieser auch weiterhin nochmal im Otobo angelegt. Dass muss vorher geprüftunf ggf. angepasst werden.

        Hat hier jemand Erfahrungen?

        Kann man es einrichten, dass User, die nicht gefunden werden auch nicht angelegt werden?

        Hier nun der Codeschnipsel:

        #—————————————————————#
        # OIDC Auth Agent Login #
        #—————————————————————#

        $Self->{AuthModule} = ‚Kernel::System::Auth::OpenIDConnect‘;

        $Self->{‚AuthModule::OpenIDConnect::AuthRequest‘}->{ResponseType} = [ ‚code‘ ];
        $Self->{‚AuthModule::OpenIDConnect::AuthRequest‘}->{AdditionalScope} = [ qw/profile email/ ];

        $Self->{‚AuthModule::OpenIDConnect::Config‘}{ClientSettings} = {
        ClientID => ‚app-id‘,
        ClientSecret => ‚ClientSecret‘,
        RedirectURI => ‚https://deine-url-oder-ip/otobo/index.pl?Action=Login‘,
        };

        $Self->{‚AuthModule::OpenIDConnect::Config‘}{ProviderSettings} = {
        OpenIDConfiguration => ‚https://login.microsoftonline.com/deineTennantID/v2.0/.well-known/openid-configuration‘,
        };

        $Self->{‚AuthModule::OpenIDConnect::Config‘}{ProviderSettings}{SSLOptions} = {
        verify_hostname => 0,
        SSL_verify_mode => 0,
        };

        $Self->{‚AuthModule::OpenIDConnect::Config‘}{Misc} = {
        UseNonce => 0,
        RandLength => 22,
        RandTTL => 300,
        };

        $Self->{‚AuthModule::OpenIDConnect::UID‘} = ‚preferred_username‘;

        # DEAKTIVIERT DIE AUTOMATISCHE ERSTELLUNG / UPDATES VON AGENTEN
        $Self->{‚AuthModule::OpenIDConnect::UserSyncBackend‘} = “;

        $Self->{‚AuthModule::OpenIDConnect::UserMap‘} = {
        ‚preferred_username‘ => ‚UserLogin‘,
        ‚email‘ => ‚UserEmail‘,
        ‚given_name‘ => ‚UserFirstname‘,
        ‚family_name‘ => ‚UserLastname‘,
        };

        $Self->{‚AuthModule::OpenIDConnect::Debug‘}->{‚LogIDToken‘} = 1;

        #——————————————————————————–

        Übrigens, die Hochkommas sind so wie im Bild, der Code hier wird da beim speichern geändert.

        Gruß Marcel

         

      • 23. Juli 2026 um 15:32 Uhr #42408
        marcel-graf
        Teilnehmer

          folgend eine Möglichkeit die OIDC Settings per Weboberfläche zu verwalten und auch zu aktivieren/deaktivieren.

          Hier nun die kurze Anleitung:

          per SSH mit dem Otobo verbinden und in das Verzeichnis /opt/otobo-docker wechseln

          cd /opt/otobo-docker

          ####################################################
          #—XML Datei im Otobo Host erstellen—
          ####################################################

          sudo nano /var/lib/docker/volumes/otobo_opt_otobo/_data/Kernel/Config/Files/XML/OidcGuiFields.xml

          <?xml version=“1.0″ encoding=“utf-8″ ?>
          <otobo_config version=“2.0″ init=“Config“>
          <!– Alle OIDC Agenten-Einstellungen kompakt in einer GUI-Box –>
          <Setting Name=“AuthModule::OpenIDConnect::AllSettings“ Required=“1″ Valid=“1″>
          <Description Translatable=“1″>Zentrale Verwaltung für den OpenID Connect Agenten-Login (Schalter, IDs und Provider-URLs). Schalter 0 = inaktiv, 1 = aktiv</Description>
          <Navigation>Core::Authentication::Agent</Navigation>
          <Value>
          <Hash>
          <!– Der Aktivierungsschalter –>
          <Item Key=“Switch“>0</Item>

          <!– Client-Settings –>
          <Item Key=“ClientID“>HIER_ANWENDUNGS_ID_EINTRAGEN</Item>
          <Item Key=“ClientSecret“>HIER_GEHEIMWORT_EINTRAGEN</Item>
          <Item Key=“RedirectURI“>https://ihre-otobo-domain.de</Item&gt;

          <!– Provider-Settings –>
          <Item Key=“OpenIDConfiguration“>https://microsoftonline.com</Item&gt;
          </Hash>
          </Value>
          </Setting>
          </otobo_config>

          ####################################################
          # Rechte korrigieren
          ####################################################
          sudo chown -R 1000:1000 /var/lib/docker/volumes/otobo_opt_otobo/_data/Kernel/Config/Files/XML/OidcGuiFields.xml

          ####################################################
          # Struktur neu aufbauen und Cache leeren
          ####################################################
          docker compose exec -u otobo web bin/otobo.Console.pl Maint::Config::Rebuild
          docker compose exec -u otobo web bin/otobo.Console.pl Maint::Cache::Delete

          ####################################################
          ###in den Otoob Web Container wechseln #############
          ####################################################
          sudo docker exec -it otobo-web-1 bash

          nano Kernel/Config.pm

          ####################################################
          #–OIDC Agent Auth nach Kernel/Config.pm kopieren—
          ####################################################

          # ————————————————————————————————————————————————————— #
          # OTOBO 11: OIDC Agent Auth (Kombinierte GUI-Struktur) #
          # ————————————————————————————————————————————————————— #

          # 1. Wir laden das zentrale Einstellungs-Objekt aus der GUI
          my $OidcGui = $Self->{‚AuthModule::OpenIDConnect::AllSettings‘} // {};

          # 2. Status des Schalters prüfen
          my $OidcActive = $OidcGui->{Switch} // 0;

          if ($OidcActive) {
          # OIDC aktivieren
          $Self->{AuthModule} = ‚Kernel::System::Auth::OpenIDConnect‘;

          $Self->{‚AuthModule::OpenIDConnect::AuthRequest‘}->{ResponseType} = [ ‚code‘ ];
          $Self->{‚AuthModule::OpenIDConnect::AuthRequest‘}->{AdditionalScope} = [ qw/profile email/ ];

          # Werte direkt aus der kombinierten GUI-Box auslesen
          $Self->{‚AuthModule::OpenIDConnect::Config‘}{ClientSettings} = {
          ClientID => $OidcGui->{ClientID} // “,
          ClientSecret => $OidcGui->{ClientSecret} // “,
          RedirectURI => $OidcGui->{RedirectURI} // “,
          };

          $Self->{‚AuthModule::OpenIDConnect::Config‘}{ProviderSettings} = {
          OpenIDConfiguration => $OidcGui->{OpenIDConfiguration} // “,
          };

          # Feste TLS- und Schutz-Konfigurationen
          $Self->{‚AuthModule::OpenIDConnect::Config‘}{ProviderSettings}{SSLOptions} = {
          verify_hostname => 0,
          SSL_verify_mode => 0,
          };
          $Self->{‚AuthModule::OpenIDConnect::Config‘}{Misc} = {
          UseNonce => 0,
          RandLength => 22,
          RandTTL => 300,
          };

          $Self->{‚AuthModule::OpenIDConnect::UID‘} = ‚preferred_username‘;
          $Self->{‚AuthModule::OpenIDConnect::UserSyncBackend‘} = “;

          $Self->{‚AuthModule::OpenIDConnect::UserMap‘} = {
          ‚preferred_username‘ => ‚UserLogin‘,
          ‚email‘ => ‚UserEmail‘,
          ‚given_name‘ => ‚UserFirstname‘,
          ‚family_name‘ => ‚UserLastname‘,
          };

          $Self->{‚AuthModule::OpenIDConnect::Debug‘}->{‚LogIDToken‘} = 1;
          } else {
          # Fallback auf lokale Datenbank
          $Self->{AuthModule} = ‚Kernel::System::Auth::DB‘;
          }
          # ————————————————————————————————————————————————————— #

          ####Settings per Systemconfig in der Otobo GUI setzen####

          AuthModule::OpenIDConnect::AllSettings

          Sollte man sich mal von der Weborberfläche aussperren, dann einfach in der config.pm den OIDC Bereich löschen oder die einzelnen Zeilen auskommentieren.

          Gruß Marcel

        • 24. Juli 2026 um 9:26 Uhr #42419
          marcel-graf
          Teilnehmer

            Anbei noch eine Änderung, bei der das Passwort maskiert wird.

            per SSH mit dem Otobo verbinden und in das Verzeichnis /opt/otobo-docker wechseln

            cd /opt/otobo-docker

            ####################################################
            #—XML Datei im Otobo Host erstellen—
            ####################################################

            sudo nano /var/lib/docker/volumes/otobo_opt_otobo/_data/Kernel/Config/Files/XML/OidcGuiFields.xml

            <?xml version=“1.0″ encoding=“utf-8″ ?>
            <otobo_config version=“2.0″ init=“Config“>
            <!– Zentrale Verwaltung für den OpenID Connect Agenten-Login inklusive Secret –>
            <Setting Name=“AuthModule::OpenIDConnect::AllSettings“ Required=“1″ Valid=“1″>
            <Description Translatable=“1″>Zentrale Verwaltung für den OpenID Connect Agenten-Login (Schalter, IDs, Provider-URLs und Secret). Switch = 0 disabled, Switch = 1 enabled</Description>
            <Navigation>Core::Authentication::Agent</Navigation>
            <Value>
            <Hash>
            <Item Key=“Switch“>0</Item>
            <Item Key=“ClientID“>HIER_ANWENDUNGS_ID_EINTRAGEN</Item>
            <Item Key=“RedirectURI“>https://ihre-otobo-domain.de</Item&gt;
            <Item Key=“OpenIDConfiguration“>https://login.microsoftonline.com/yourTenantID/v2.0/.well-known/openid-configuration</Item&gt;
            <Item Key=“ClientSecret“ ValueType=“Password“>HIER_GEHEIMWORT_EINTRAGEN</Item>
            </Hash>
            </Value>
            </Setting>
            </otobo_config>

            ####################################################
            # Rechte korrigieren
            ####################################################
            sudo chown -R 1000:1000 /var/lib/docker/volumes/otobo_opt_otobo/_data/Kernel/Config/Files/XML/OidcGuiFields.xml

            ####################################################
            # Struktur neu aufbauen und Cache leeren
            ####################################################
            sudo docker compose exec -u otobo web bin/otobo.Console.pl Maint::Config::Rebuild
            sudo docker compose exec -u otobo web bin/otobo.Console.pl Maint::Cache::Delete

            ####################################################
            ###in den Otoob Web Container wechseln #############
            ####################################################
            sudo docker exec -it otobo-web-1 bash

            nano Kernel/Config.pm

            ####################################################
            #–OIDC Agent Auth nach Kernel/Config.pm kopieren—
            ####################################################

            # ————————————————————————————————————————————————————— #
            # OTOBO 11: OIDC Agent Auth (Kombinierte GUI-Struktur) #
            # ————————————————————————————————————————————————————— #

            # 1. Wir laden das zentrale Einstellungs-Objekt aus der GUI
            my $OidcGui = $Self->{‚AuthModule::OpenIDConnect::AllSettings‘} // {};

            # 2. Status des Schalters prüfen
            my $OidcActive = $OidcGui->{Switch} // 0;

            if ($OidcActive) {
            # OIDC aktivieren
            $Self->{AuthModule} = ‚Kernel::System::Auth::OpenIDConnect‘;

            $Self->{‚AuthModule::OpenIDConnect::AuthRequest‘}->{ResponseType} = [ ‚code‘ ];
            $Self->{‚AuthModule::OpenIDConnect::AuthRequest‘}->{AdditionalScope} = [ qw/profile email/ ];

            # Werte direkt aus der kombinierten GUI-Box auslesen
            $Self->{‚AuthModule::OpenIDConnect::Config‘}{ClientSettings} = {
            ClientID => $OidcGui->{ClientID} // “,
            # KORREKTUR: Liest das Secret nun direkt aus dem AllSettings-Hash aus:
            ClientSecret => $OidcGui->{ClientSecret} // “,
            RedirectURI => $OidcGui->{RedirectURI} // “,
            };

            $Self->{‚AuthModule::OpenIDConnect::Config‘}{ProviderSettings} = {
            OpenIDConfiguration => $OidcGui->{OpenIDConfiguration} // “,
            };

            # Feste TLS- und Schutz-Konfigurationen
            $Self->{‚AuthModule::OpenIDConnect::Config‘}{ProviderSettings}{SSLOptions} = {
            verify_hostname => 0,
            SSL_verify_mode => 0,
            };
            $Self->{‚AuthModule::OpenIDConnect::Config‘}{Misc} = {
            UseNonce => 0,
            RandLength => 22,
            RandTTL => 300,
            };

            # WICHTIGE ANPASSUNG FÜR ENTRA ID / MICROSOFT:
            # Microsoft nutzt im ID-Token meist „oid“ oder „sub“ als eindeutige ID.
            # „preferred_username“ entspricht der Mailadresse/UPN.
            $Self->{‚AuthModule::OpenIDConnect::UID‘} = ‚preferred_username‘;
            $Self->{‚AuthModule::OpenIDConnect::UserSyncBackend‘} = “;

            # Mapping der Attribute auf die OTOBO-Datenbankfelder
            $Self->{‚AuthModule::OpenIDConnect::UserMap‘} = {
            ‚preferred_username‘ => ‚UserLogin‘,
            ‚email‘ => ‚UserEmail‘,
            ‚given_name‘ => ‚UserFirstname‘,
            ‚family_name‘ => ‚UserLastname‘,
            };

            # Debugging aktivieren, um ankommende Token im OTOBO-Log einzusehen
            $Self->{‚AuthModule::OpenIDConnect::Debug‘}->{‚LogIDToken‘} = 1;
            } else {
            # Fallback auf lokale Datenbank
            $Self->{AuthModule} = ‚Kernel::System::Auth::DB‘;
            }
            # ————————————————————————————————————————————————————— #

            mit Exit Container verlassen

            sudo docker compose exec -u otobo web bin/otobo.Console.pl Maint::Config::Rebuild
            sudo docker compose exec -u otobo web bin/otobo.Console.pl Maint::Cache::Delete

            #########################################################
            ####Settings per Systemconfig in der Otobo GUI setzen####
            #########################################################

            AuthModule::OpenIDConnect::AllSettings

            ########################################################################
            #falls es nicht gleich geht, eventuell noch folgende Befehle ausführen #
            ########################################################################

            docker compose exec -u otobo web bin/otobo.Console.pl Maint::Config::Rebuild –cleanup
            docker compose exec -u otobo web bin/otobo.Console.pl Admin::Config::Update –setting-name AuthModule::OpenIDConnect::AllSettings –reset

        • Autor
          Beiträge
        Ansicht von 2 Antwort-Threads
        • Du musst angemeldet sein, um auf dieses Thema antworten zu können.

        Foren durchsuchen

        Anmeldung

        Anmeldung

        Konto erstellen
        Passwort vergessen?

        Login via Social

        Profil

        Bitte vervollständigen Sie nach der Registrierung Ihr Profil, das vereinfacht die spätere Kommunikation enorm. Ihre Profileinstellung finden Sie, wenn Sie auf Ihr Avatarbild klicken.

        Sie können Ihren Avatar ändern, indem Sie sich mit Ihrer E-Mail-Adresse unter gravatar.com registrieren.

        Letzte Aktivitäten

        • Dynamische Felder in AgentTicketNote mit ACL verstecken
        • FAQ: kaputtes Copy & Paste von Bildern zwischen Artikeln
        • Benachrichtigung „Ticket wurde mir entzogen“ möglich?
        • Statistik Anzahl Tickets pro Agent
        • Docker: Ändern des redis Hosts

        Unternehmen

        Über uns
        Karriere
        Stellenbörse
        Partner werden
        Kontakt
        Newsletter

        OTOBO | Simplify work and create exceptional service experiences.

        Die Source Code Owner und Maintainer hinter OTOBO.

        Software

        Service Management-Plattform
        OTOBO Demo
        OTOBO Download
        OTOBO Dokumentation

        Security-Problem melden:
        security@otobo.org

        Services

        Support-Portal
        Beratung
        Training
        Support
        Managed Services
        Erweiterung
        OTRS Migration
        Partner finden

        Community

        Open Source
        Community Forum
        Mitmachen
        OTOBO Developer
        OTOBO@GitHub

        © 2026 Rother OSS GmbH | All rights reserved.
        • Cookie-Einstellungen
        • Impressum
        • Datenschutz
        • Haftungsausschluss
        Nach oben scrollen Nach oben scrollen Nach oben scrollen