OpenID Connect integreren in OTOBO (agenten en klanten)
Met OpenID Connect (OIDC) kunnen zowel agenten als klantgebruikers in het OTOBO-ticketsysteem op een comfortabele en veilige manier worden geauthenticeerd. Het beheer van gebruikers gebeurt centraal via een externe identiteitsprovider (IdP) zoals Azure AD of Keycloak.
Vereisten
- OTOBO 11 of hoger
- OpenID Connect-compatibele identiteitsprovider (Azure AD, Keycloak, Auth0 enz.)
- Toegang tot het bestand
Kernel/Config.pm
Agentenlogin configureren met OpenID Connect
De integratie voor agenten vindt plaats in de Kernel/Config.pm
.
Voorbeeldconfiguratie
$Self->{AuthModule} = 'Kernel::System::Auth::OpenIDConnect';
$Self->{'AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'UW-AGENT-CLIENT-ID',
ClientSecret => 'UW-AGENT-CLIENT-SECRET',
RedirectURI => 'https://uw-domein.nl/otobo/index.pl?Action=Login',
};
$Self->{'AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://uw-provider.nl/.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',
};
# Optioneel mapping van groepen/rollen
$Self->{'AuthModule::OpenIDConnect::RoleMap'} = {
groups => {
admins => 'admin',
support => 'support',
},
};
# Debugging (tijdelijk)
$Self->{'AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;
Klantgebruikerslogin configureren met OpenID Connect
Klantgebruikers kunnen ook via OpenID Connect worden geauthenticeerd.
Voorbeeldconfiguratie voor klantgebruikers
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::OpenIDConnect';
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'UW-KLANT-CLIENT-ID',
ClientSecret => 'UW-KLANT-CLIENT-SECRET',
RedirectURI => 'https://uw-domein.nl/otobo/customer.pl?Action=Login',
};
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://uw-provider.nl/.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 klantgebruikeranlage
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;
# Optioneel debugging
$Self->{'Customer::AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;
Azure AD optimaal configureren (voorbeeld)
Nieuwe app registreren in Azure Active Directory
Machtigingen toevoegen voor „openid“, „profile“ en „email“
Redirect-URL's instellen:
- Agenten:
https://uw-domein.nl/otobo/index.pl?Action=Login
- Klanten:
https://uw-domein.nl/otobo/customer.pl?Action=Login
- Agenten:
Claims (
given_name
,family_name
) configureren onder „Token Configuration“
Login testen
Na de configuratie en het opnieuw opstarten van de webserver kunnen agenten en klantgebruikers comfortabel via uw externe IdP worden geauthenticeerd. Nieuwe gebruikers worden automatisch in OTOBO aangemaakt, mits dit is geconfigureerd.
Voordelen van OIDC-integratie in OTOBO
- Centrale en veilige authenticatie
- Uniforme identiteitsbeheer
- Automatische gebruikeranlage
- Minder administratieve lasten