Integrazione di OpenID Connect in OTOBO (agenti e clienti)
Con OpenID Connect (OIDC), sia gli agenti che gli utenti dei clienti possono essere autenticati in modo comodo e sicuro nel sistema di ticket OTOBO. La gestione degli utenti avviene in modo centralizzato tramite un provider di identità esterno (IdP) come Azure AD o Keycloak.
Prerequisiti
- OTOBO 11 o successivo
- Provider di identità compatibile con OpenID Connect (Azure AD, Keycloak, Auth0 ecc.)
- Accesso al file
Kernel/Config.pm
Configurazione dell'accesso degli agenti con OpenID Connect
L'integrazione per gli agenti avviene nel file Kernel/Config.pm
.
Esempio di configurazione
$Self->{AuthModule} = 'Kernel::System::Auth::OpenIDConnect';
$Self->{'AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'ID_CLIENT_AGENT',
ClientSecret => 'SEGRETO_CLIENT_AGENT',
RedirectURI => 'https://dominio.it/otobo/index.pl?Action=Login',
};
$Self->{'AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://provider.it/.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 facoltativo di gruppi/ruoli
$Self->{'AuthModule::OpenIDConnect::RoleMap'} = {
groups => {
admins => 'admin',
support => 'support',
},
};
# Debugging (temporaneo)
$Self->{'AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;
Configurazione dell'accesso degli utenti dei clienti con OpenID Connect
Gli utenti dei clienti possono anche essere autenticati tramite OpenID Connect.
Esempio di configurazione per gli utenti dei clienti
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::OpenIDConnect';
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'ID_CLIENT_CLIENT',
ClientSecret => 'SEGRETO_CLIENT_CLIENT',
RedirectURI => 'https://dominio.it/otobo/customer.pl?Action=Login',
};
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://provider.it/.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',
};
# Creazione automatica degli utenti dei clienti
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;
# Debugging facoltativo
$Self->{'Customer::AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;
Configurazione ottimale di Azure AD (esempio)
Registra una nuova app in Azure Active Directory
Aggiungi le autorizzazioni per "openid", "profile" e "email"
Imposta gli URL di reindirizzamento:
- Agenti:
https://dominio.it/otobo/index.pl?Action=Login
- Clienti:
https://dominio.it/otobo/customer.pl?Action=Login
- Agenti:
Configura le richieste (
given_name
,family_name
) nella sezione "Token Configuration"
Test dell'accesso
Dopo la configurazione e il riavvio del server web, gli agenti e gli utenti dei clienti possono essere autenticati in modo comodo tramite il provider di identità esterno. I nuovi utenti vengono creati automaticamente in OTOBO, se configurato.
Vantaggi dell'integrazione OIDC in OTOBO
- Autenticazione centralizzata e sicura
- Gestione unificata delle identità
- Creazione automatica degli utenti
- Riduzione del carico amministrativo