Skip to content

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

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

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

  1. Registra una nuova app in Azure Active Directory

  2. Aggiungi le autorizzazioni per "openid", "profile" e "email"

  3. Imposta gli URL di reindirizzamento:

    • Agenti: https://dominio.it/otobo/index.pl?Action=Login
    • Clienti: https://dominio.it/otobo/customer.pl?Action=Login
  4. 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

Collegamenti utili