Skip to content

Integrar OpenID Connect en OTOBO (Agentes y Clientes)

Con OpenID Connect (OIDC), tanto los agentes como los usuarios clientes en el sistema de tickets OTOBO pueden ser autenticados de manera conveniente y segura. La gestión de usuarios se realiza centralmente a través de un proveedor de identidad externo (IdP) como Azure AD o Keycloak.

Requisitos Previos

  • OTOBO 11 o superior
  • Proveedor de identidad compatible con OpenID Connect (Azure AD, Keycloak, Auth0, etc.)
  • Acceso al archivo Kernel/Config.pm

Configurar el Inicio de Sesión de Agentes con OpenID Connect

La integración para los agentes se realiza en Kernel/Config.pm.

Configuración de Ejemplo

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

$Self->{'AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
    ClientID     => 'TU-CLIENT-ID-DE-AGENTE',
    ClientSecret => 'TU-CLIENT-SECRET-DE-AGENTE',
    RedirectURI  => 'https://tu-dominio.de/otobo/index.pl?Action=Login',
};

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

# Mapeo opcional de grupos/roles
$Self->{'AuthModule::OpenIDConnect::RoleMap'} = {
    groups => {
        admins  => 'admin',
        support => 'support',
    },
};

# Depuración (temporal)
$Self->{'AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;

Configurar el Inicio de Sesión de Usuarios Clientes con OpenID Connect

Los usuarios clientes también pueden ser autenticados a través de OpenID Connect.

Configuración de Ejemplo para Usuarios Clientes

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

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

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

# Creación automática de usuarios clientes
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;

# Depuración opcional
$Self->{'Customer::AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;

Configurar Azure AD de Forma Óptima (Ejemplo)

  1. Registrar una nueva aplicación en Azure Active Directory

  2. Añadir permisos para "openid", "profile" y "email"

  3. Establecer las URLs de redirección:

    • Agentes: https://tu-dominio.de/otobo/index.pl?Action=Login
    • Clientes: https://tu-dominio.de/otobo/customer.pl?Action=Login
  4. Configurar Claims (given_name, family_name) en "Token Configuration"


Probar el Inicio de Sesión

Después de la configuración y el reinicio del servidor web, los agentes y usuarios clientes podrán autenticarse cómodamente a través de su IdP externo. Los nuevos usuarios se crearán automáticamente en OTOBO si está configurado.


Ventajas de la Integración OIDC en OTOBO

  • Autenticación centralizada y segura
  • Gestión de identidades unificada
  • Creación automática de usuarios
  • Menor carga administrativa

Enlaces de Interés