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
$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
$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)
Enregistrer une nouvelle application dans Azure Active Directory
Ajouter les autorisations pour « openid », « profile » et « email »
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
- Agents :
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