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
$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
$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)
Registrar una nueva aplicación en Azure Active Directory
Añadir permisos para "openid", "profile" y "email"
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
- Agentes:
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