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