Skip to content

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

perl
$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

perl
$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)

  1. Nieuwe app registreren in Azure Active Directory

  2. Machtigingen toevoegen voor „openid“, „profile“ en „email“

  3. Redirect-URL's instellen:

    • Agenten: https://uw-domein.nl/otobo/index.pl?Action=Login
    • Klanten: https://uw-domein.nl/otobo/customer.pl?Action=Login
  4. 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