Skip to content

Integrar OpenID Connect en OTOBO (Agentes y Clientes)

Con OpenID Connect (OIDC), tanto los agentes como los usuarios de cliente pueden autenticarse de manera cómoda y segura en el sistema de tickets OTOBO. La administración de usuarios se realiza de forma centralizada 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 agentes se realiza en el archivo 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',
};

# Asignación 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 de cliente con OpenID Connect

Los usuarios de cliente también pueden autenticarse mediante OpenID Connect.

Configuración de ejemplo para usuarios de cliente

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 de cliente
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;

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

Configurar Azure AD de manera óptima (Ejemplo)

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

  2. Agregar permisos para "openid", "profile" y "email"

  3. Establecer las URL de redireccionamiento:

    • Agentes: https://tu-dominio.de/otobo/index.pl?Action=Login
    • Clientes: https://tu-dominio.de/otobo/customer.pl?Action=Login
  4. Configurar las reclamaciones (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 de cliente pueden autenticarse de manera cómoda a través de su proveedor de identidad externo. Los nuevos usuarios se crean automáticamente en OTOBO, siempre y cuando esté configurado.


Ventajas de la integración de OIDC en OTOBO

  • Autenticación centralizada y segura
  • Administración de identidad unificada
  • Creación automática de usuarios
  • Menos esfuerzo administrativo

Enlaces adicionales