Skip to content

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

perl
$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

perl
$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)

  1. Zarejestruj nową aplikację w Azure Active Directory

  2. Dodaj uprawnienia do „openid”, „profile” i „email”

  3. 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
  4. 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

Linki dodatkowe