Integracja OpenID Connect w OTOBO (Agenci i Klienci)
Dzięki OpenID Connect (OIDC) agenci i użytkownicy klienccy w systemie biletowym OTOBO mogą być uwierzytelniani w wygodny i bezpieczny sposób. Zarządzanie użytkownikami odbywa się centralnie za pośrednictwem zewnętrznego dostawcy tożsamości (IdP), takiego jak Azure AD lub Keycloak.
Wymagania
- OTOBO 11 lub nowszy
- Dostawca tożsamości zgodny z OpenID Connect (Azure AD, Keycloak, Auth0 itp.)
- Dostęp do pliku
Kernel/Config.pm
Konfiguracja logowania agentów za pomocą OpenID Connect
Integracja dla agentów odbywa się w pliku Kernel/Config.pm.
Przykładowa konfiguracja
$Self->{AuthModule} = 'Kernel::System::Auth::OpenIDConnect';
$Self->{'AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'TWOJ-AGENT-CLIENT-ID',
ClientSecret => 'TWOJ-AGENT-CLIENT-SECRET',
RedirectURI => 'https://twoja-domena.pl/otobo/index.pl?Action=Login',
};
$Self->{'AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://twoj-provider.pl/.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',
};
# Opcjonalne mapowanie grup/ról
$Self->{'AuthModule::OpenIDConnect::RoleMap'} = {
groups => {
admins => 'admin',
support => 'support',
},
};
# Debugowanie (tymczasowe)
$Self->{'AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;Konfiguracja logowania użytkowników klientów za pomocą OpenID Connect
Użytkownicy klienccy również mogą być uwierzytelniani za pomocą OpenID Connect.
Przykładowa konfiguracja dla użytkowników klientów
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::OpenIDConnect';
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'TWOJ-KLIENT-CLIENT-ID',
ClientSecret => 'TWOJ-KLIENT-CLIENT-SECRET',
RedirectURI => 'https://twoja-domena.pl/otobo/customer.pl?Action=Login',
};
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://twoj-provider.pl/.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',
};
# Automatyczne tworzenie użytkowników klientów
$Self->{'Customer::AuthModule::OpenIDConnect::AutoCreateUser'} = 1;
# Opcjonalne debugowanie
$Self->{'Customer::AuthModule::OpenIDConnect::Debug'}->{'LogIDToken'} = 1;Optymalna konfiguracja Azure AD (przykład)
Zarejestruj nową aplikację w Azure Active Directory
Dodaj uprawnienia dla „openid”, „profile” i „email”
Ustaw adresy URL przekierowania:
- Agenci:
https://twoja-domena.pl/otobo/index.pl?Action=Login - Klienci:
https://twoja-domena.pl/otobo/customer.pl?Action=Login
- Agenci:
Skonfiguruj roszczenia (claims) (
given_name,family_name) w sekcji „Token Configuration”
Testowanie logowania
Po skonfigurowaniu i ponownym uruchomieniu serwera WWW agenci i użytkownicy klienccy mogą wygodnie uwierzytelniać się za pomocą zewnętrznego IdP. Nowi użytkownicy są automatycznie tworzeni w OTOBO, jeśli zostało to skonfigurowane.
Zalety integracji OIDC w OTOBO
- Centralne i bezpieczne uwierzytelnianie
- Jednolite zarządzanie tożsamością
- Automatyczne tworzenie użytkowników
- Mniejszy nakład pracy administracyjnej