Skip to content

Intégrer OpenID Connect dans OTOBO (Agents et Clients)

Avec OpenID Connect (OIDC), les agents et les utilisateurs clients peuvent être authentifiés de manière pratique et sécurisée dans le système de tickets OTOBO. La gestion des utilisateurs est centralisée via un fournisseur d'identité (IdP) externe tel qu'Azure AD ou Keycloak.

Prérequis

  • OTOBO 11 ou supérieur
  • Fournisseur d'identité compatible OpenID Connect (Azure AD, Keycloak, Auth0, etc.)
  • Accès au fichier Kernel/Config.pm

Configurer la connexion des agents avec OpenID Connect

L'intégration pour les agents se fait dans le fichier Kernel/Config.pm.

Exemple de configuration

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

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

$Self->{'AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
    OpenIDConfiguration => 'https://votre-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',
};

# Mapping optionnel des groupes/rôles
$Self->{'AuthModule::OpenIDConnect::RoleMap'} = {
    groups => {
        admins  => 'admin',
        support => 'support',
    },
};

# Débogage (temporaire)
$Self->{'AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;

Configurer la connexion des utilisateurs clients avec OpenID Connect

Les utilisateurs clients peuvent également être authentifiés via OpenID Connect.

Exemple de configuration pour les utilisateurs clients

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

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

$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
    OpenIDConfiguration => 'https://votre-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',
};

# Création automatique d'utilisateurs clients
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;

# Débogage optionnel
$Self->{'Customer::AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;

Configurer Azure AD de manière optimale (Exemple)

  1. Enregistrer une nouvelle application dans Azure Active Directory

  2. Ajouter les autorisations pour « openid », « profile » et « email »

  3. Définir les URL de redirection :

    • Agents : https://votre-domaine.de/otobo/index.pl?Action=Login
    • Clients : https://votre-domaine.de/otobo/customer.pl?Action=Login
  4. Configurer les claims (given_name, family_name) sous « Token Configuration »


Tester la connexion

Après la configuration et le redémarrage du serveur web, les agents et les utilisateurs clients peuvent être authentifiés de manière pratique via votre IdP externe. Les nouveaux utilisateurs sont automatiquement créés dans OTOBO si cette option est configurée.


Avantages de l'intégration OIDC dans OTOBO

  • Authentification centralisée et sécurisée
  • Gestion unifiée des identités
  • Création automatique d'utilisateurs
  • Réduction de la charge administrative

Liens utiles