OpenID Connect w OTOBO (agenci i użytkownicy)
OpenID Connect (OIDC) umożliwia wygodne i bezpieczne uwierzytelnianie zarówno agentów, jak i użytkowników końcowych w systemie biletowym OTOBO. 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 z 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 => 'TWÓJ_ID_KLIENTA_DLA_AGENTA',
ClientSecret => 'TWÓJ_SEKRET_KLIENTA_DLA_AGENTA',
RedirectURI => 'https://twoja-domena.pl/otobo/index.pl?Action=Login',
};
$Self->{'AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://twój-dostawca.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 końcowych z OpenID Connect
Użytkownicy końcowi również mogą być uwierzytelniani za pomocą OpenID Connect.
Przykładowa konfiguracja dla użytkowników końcowych
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::OpenIDConnect';
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ClientSettings} = {
ClientID => 'TWÓJ_ID_KLIENTA_DLA_UŻYTKOWNIKA',
ClientSecret => 'TWÓJ_SEKRET_KLIENTA_DLA_UŻYTKOWNIKA',
RedirectURI => 'https://twoja-domena.pl/otobo/customer.pl?Action=Login',
};
$Self->{'Customer::AuthModule::OpenIDConnect::Config'}{ProviderSettings} = {
OpenIDConfiguration => 'https://twój-dostawca.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
$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 do „openid”, „profile” i „email”
Ustaw adresy URL przekierowania:
- Agenci:
https://twoja-domena.pl/otobo/index.pl?Action=Login
- Użytkownicy:
https://twoja-domena.pl/otobo/customer.pl?Action=Login
- Agenci:
Skonfiguruj roszczenia (
given_name
,family_name
) w „Token Configuration”
Testowanie logowania
Po skonfigurowaniu i ponownym uruchomieniu serwera WWW agenci i użytkownicy końcowi mogą być wygodnie uwierzytelniani za pomocą zewnętrznego dostawcy tożsamości. Nowi użytkownicy są automatycznie tworzeni w OTOBO, o ile jest 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 administracyjnego