Integrar OpenID Connect no OTOBO (Agentes e Clientes)
Com o OpenID Connect (OIDC), tanto agentes quanto usuários clientes podem ser autenticados de forma conveniente e segura no sistema de tickets OTOBO. O gerenciamento de usuários é feito centralmente através de um provedor de identidade (IdP) externo, como Azure AD ou Keycloak.
Pré-requisitos
- OTOBO 11 ou superior
- Provedor de identidade compatível com OpenID Connect (Azure AD, Keycloak, Auth0, etc.)
- Acesso ao arquivo
Kernel/Config.pm
Configurar Login de Agente com OpenID Connect
A integração para agentes é feita no Kernel/Config.pm.
Exemplo de Configuração
$Self->{AuthModule} = 'Kernel::System::Auth::OpenIDConnect';
$Self->{'AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'SEU-CLIENT-ID-DE-AGENTE',
ClientSecret => 'SEU-SEGREDO-DE-CLIENTE-DE-AGENTE',
RedirectURI => 'https://sua-dominio.de/otobo/index.pl?Action=Login',
};
$Self->{'AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://seu-provider.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',
};
# Mapeamento opcional de grupos/funções
$Self->{'AuthModule::OpenIDConnect::RoleMap'} = {
groups => {
admins => 'admin',
support => 'support',
},
};
# Debugging (temporário)
$Self->{'AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;Configurar Login de Usuário Cliente com OpenID Connect
Usuários clientes também podem ser autenticados via OpenID Connect.
Exemplo de Configuração para Usuários Clientes
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::OpenIDConnect';
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'SEU-CLIENT-ID-DE-CLIENTE',
ClientSecret => 'SEU-SEGREDO-DE-CLIENTE-DE-CLIENTE',
RedirectURI => 'https://sua-dominio.de/otobo/customer.pl?Action=Login',
};
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://seu-provider.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',
};
# Criação automática de usuário cliente
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;
# Debugging opcional
$Self->{'Customer::AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;Configurar Azure AD de Forma Otimizada (Exemplo)
Registrar um novo aplicativo no Azure Active Directory
Adicionar permissões para "openid", "profile" e "email"
Definir URLs de redirecionamento:
- Agentes:
https://sua-dominio.de/otobo/index.pl?Action=Login - Clientes:
https://sua-dominio.de/otobo/customer.pl?Action=Login
- Agentes:
Configurar claims (
given_name,family_name) em "Token Configuration"
Testar o Login
Após a configuração e reinicialização do servidor web, agentes e usuários clientes podem ser autenticados convenientemente através do seu IdP externo. Novos usuários serão criados automaticamente no OTOBO, se configurado.
Vantagens da Integração OIDC no OTOBO
- Autenticação centralizada e segura
- Gerenciamento unificado de identidades
- Criação automática de usuários
- Menor carga administrativa