Intégration d'OpenID Connect dans OTOBO (agents et clients)
Avec OpenID Connect (OIDC), les agents et les utilisateurs clients peuvent être authentifiés de manière sécurisée et pratique dans le système de tickets OTOBO. La gestion des utilisateurs est effectuée de manière centralisée via un fournisseur d'identité externe (IdP) 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
Configuration de la connexion des agents avec OpenID Connect
L'intégration pour les agents est effectuée dans le fichier Kernel/Config.pm
.
Exemple de configuration
$Self->{AuthModule} = 'Kernel::System::Auth::OpenIDConnect';
$Self->{'AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'VOTRE-CLIENT-ID-AGENT',
ClientSecret => 'VOTRE-CLIENT-SECRET-AGENT',
RedirectURI => 'https://votre-domaine.fr/otobo/index.pl?Action=Login',
};
$Self->{'AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://votre-fournisseur.fr/.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 facultatif des groupes/rôles
$Self->{'AuthModule::OpenIDConnect::RoleMap'} = {
groups => {
admins => 'admin',
support => 'support',
},
};
# Débogage (temporaire)
$Self->{'AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;
Configuration de 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
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::OpenIDConnect';
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'VOTRE-CLIENT-ID-CLIENT',
ClientSecret => 'VOTRE-CLIENT-SECRET-CLIENT',
RedirectURI => 'https://votre-domaine.fr/otobo/customer.pl?Action=Login',
};
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://votre-fournisseur.fr/.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 des utilisateurs clients
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;
# Débogage facultatif
$Self->{'Customer::AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;
Configuration optimale d'Azure AD (exemple)
Enregistrement d'une nouvelle application dans Azure Active Directory
Ajout des autorisations pour « openid », « profile » et « email »
Définition des URL de redirection :
- Agents :
https://votre-domaine.fr/otobo/index.pl?Action=Login
- Clients :
https://votre-domaine.fr/otobo/customer.pl?Action=Login
- Agents :
Configuration des claims (
given_name
,family_name
) sous « Token Configuration »
Test de 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 sécurisée via votre fournisseur d'identité externe. Les nouveaux utilisateurs sont créés automatiquement dans OTOBO, si cela est configuré.
Avantages de l'intégration OIDC dans OTOBO
- Authentification centralisée et sécurisée
- Gestion unifiée des identités
- Création automatique des utilisateurs
- Moins d'efforts d'administration