-
AutorBeiträge
-
-
15. Juli 2026 um 12:46 Uhr - Views: 144 #42276
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
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><!– Provider-Settings –>
<Item Key=“OpenIDConfiguration“>https://microsoftonline.com</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
####################################################
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 bashnano 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
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>
<Item Key=“OpenIDConfiguration“>https://login.microsoftonline.com/yourTenantID/v2.0/.well-known/openid-configuration</Item>
<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 bashnano 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
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.


