Appearance
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)
Neue App in Azure Active Directory registrieren
Berechtigungen für „openid“, „profile“ und „email“ hinzufügen
Redirect-URLs setzen:
- Agenten:
https://deine-domain.de/otobo/index.pl?Action=Login
- Kunden:
https://deine-domain.de/otobo/customer.pl?Action=Login
- Agenten:
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