Skip to content

OpenID Connect in OTOBO integrieren (Agenten und Kunden)

Mit OpenID Connect (OIDC) können sowohl Agenten als auch Kundenbenutzer im OTOBO-Ticketsystem bequem und sicher authentifiziert werden. Die Benutzerverwaltung erfolgt zentral über einen externen Identity-Provider (IdP) wie Azure AD oder Keycloak.

Voraussetzungen

  • OTOBO 11 oder höher
  • OpenID-Connect-kompatibler Identity-Provider (Azure AD, Keycloak, Auth0 etc.)
  • Zugang zur Datei Kernel/Config.pm

Agenten-Login mit OpenID Connect konfigurieren

Die Integration für Agenten erfolgt in der Kernel/Config.pm.

Beispielkonfiguration

perl
$Self->{AuthModule} = 'Kernel::System::Auth::OpenIDConnect';

$Self->{'AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
    ClientID     => 'DEINE-AGENT-CLIENT-ID',
    ClientSecret => 'DEIN-AGENT-CLIENT-SECRET',
    RedirectURI  => 'https://deine-domain.de/otobo/index.pl?Action=Login',
};

$Self->{'AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
    OpenIDConfiguration => 'https://dein-provider.de/.well-known/openid-configuration',
    TTL                 => 1800,
};

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

$Self->{'AuthModule::OpenIDConnect::UID'} = 'email';

$Self->{'AuthModule::OpenIDConnect::UserMap'} = {
    email       => 'UserEmail',
    given_name  => 'UserFirstname',
    family_name => 'UserLastname',
};

# Optionales Mapping von Gruppen/Rollen
$Self->{'AuthModule::OpenIDConnect::RoleMap'} = {
    groups => {
        admins  => 'admin',
        support => 'support',
    },
};

# Debugging (temporär)
$Self->{'AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;

Kundenbenutzer-Login mit OpenID Connect konfigurieren

Auch Kundenbenutzer können via OpenID Connect authentifiziert werden.

Beispielkonfiguration für Kundenbenutzer

perl
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::OpenIDConnect';

$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
    ClientID     => 'DEINE-KUNDEN-CLIENT-ID',
    ClientSecret => 'DEIN-KUNDEN-CLIENT-SECRET',
    RedirectURI  => 'https://deine-domain.de/otobo/customer.pl?Action=Login',
};

$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
    OpenIDConfiguration => 'https://dein-provider.de/.well-known/openid-configuration',
    TTL                 => 1800,
};

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

$Self->{'Customer::AuthModule::OpenIDConnect::UID'} = 'email';

$Self->{'Customer::AuthModule::OpenIDConnect::UserMap'} = {
    email       => 'UserEmail',
    given_name  => 'UserFirstname',
    family_name => 'UserLastname',
};

# Automatische Kundenbenutzeranlage
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;

# Optionales Debugging
$Self->{'Customer::AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;

Azure AD optimal konfigurieren (Beispiel)

  1. Neue App in Azure Active Directory registrieren

  2. Berechtigungen für „openid“, „profile“ und „email“ hinzufügen

  3. Redirect-URLs setzen:

    • Agenten: https://deine-domain.de/otobo/index.pl?Action=Login
    • Kunden: https://deine-domain.de/otobo/customer.pl?Action=Login
  4. Claims (given_name, family_name) unter „Token Configuration“ konfigurieren


Login testen

Nach der Konfiguration und dem Neustart des Webservers können Agenten und Kundenbenutzer bequem über Ihren externen IdP authentifiziert werden. Neue Benutzer werden automatisch in OTOBO angelegt, sofern dies konfiguriert ist.


Vorteile der OIDC-Integration in OTOBO

  • Zentrale und sichere Authentifizierung
  • Einheitliche Identitätsverwaltung
  • Automatische Benutzeranlage
  • Weniger Administrationsaufwand