Keycloak

Written By Łukasz Strumiński (Administrator)

Updated at January 12th, 2026

Keycloak to serwer uwierzytelniania i autoryzacji na licencji open-source. Thulium umożliwia integrację z tym rozwiązaniem w celu kontroli dostępu do systemu Thulium.


Zakres integracji

  • Użytkownicy mogą logować się do systemu Thulium za pomocą mechanizmu OpenID Connect udostępnianego przez Keycloak,
  • System korzysta z OpenID za pomocą publicznej aplikacji zarejestrowanej przez Thulium,
  • Identyfikacja Użytkowników w systemie Thulium odbywa się na podstawie pola “User name” w Keycloak. Pole to jest loginem danego Użytkownika, więc nie może być ono puste. Wartość tego pola musi być unikatowa dla każdego Użytkownika.

Krok po kroku

  1. Konfiguracja integracji
    1. Integrację uwierzytelniania za pomocą Keycloak należy uruchomić w sekcji Administracja → Zaawansowane → Integracje z grupy Dostęp:
      Po kliknięciu pokaże się ekran z parametrami do uzupełnienia:
      gdzie:
      • Client ID - należy wprowadzić właściwy identyfikator klienta, z którego dopuszczone jest logowanie za pomocą OpenID Connect,
      • Client secret - hasło dla danego identyfikatora klienta,
      • Wersja Keycloak - wybór posiadanej wersji Keycloak (istotne ze względu na różnice w API między wersjami 16 a 17).

        Ważne…⚠️

        W celu pozyskania wymaganych parametrów endpoint takich jak authorizationEndpoint, tokenEndpoint, userinfoEndpoint, oraz jwksUri Administrator systemu powinien je wprowadzić ręcznie bądź pozyskać tzw. Discovery Endpoint zawierający konfigurację wszystkich niezbędnych pól. W przypadku tego drugiego należy kliknąć .

         

         
      • Automatyczne tworzenie użytkowników - zaznaczenie tego pola umożliwi systemowi automatyczne tworzenie kont nowym Użytkownikom, którzy się poprawnie uwierzytelnili za pomocą OpenID Connect, nawet jeżeli ich konta nie zostały jeszcze utworzone w systemie.

        Ważne...⚠️

        Zaleca się włączenie tej funkcji dopiero po ustawieniu odpowiednich loginów (adres email w Keycloak) w Thulium dla aktualnych Użytkowników tak by przy logowaniu nie zakładali się nowi jeżeli już takowi istnieją (ale o innym loginie).

         
        W przypadku chęci synchronizacji Użytkowników z danej grupy Administrator systemu powinien wprowadzić UUID grupy.
      • Identyfikator grupy - pozwala na zaimportowanie Użytkowników należących do grupy z Keycloak przed ich pierwszym logowaniem do systemu.
    2.  Po wprowadzeniu konfiguracji i kliknięciu w na ekranie logowania pojawi się przycisk a sama integracja ustawi się jako włączona:
  2. Synchronizacja Użytkowników
    Synchronizacja pozwala na zaimportowanie Użytkowników systemu przed ich pierwszym logowaniem do systemu pod warunkiem uzupełnienia pola Identyfikator grupy w ramach konfiguracji Integracji.
    1. W celu uruchomienia synchronizacji w ramach modułu AdministracjaUżytkownicy pojawi się przycisk
    2. Po kliknięciu w przycisk przeprowadzana jest pełna synchronizacja Użytkowników, co oznacza, że Ci, którzy nie istnieli dotychczas w systemie są dodawani do systemu Thulium natomiast dane Użytkowników, którzy już istnieli, są aktualizowane. Konta, które nie znalazły się wśród pobranych Użytkowników zostaną zdezaktywowane. Na stronie z podsumowaniem pokaże się raport z podsumowaniem importu.
  3. Dodatkowe parametry
    1. Wyłączenie formularza logowania lokalnego
      Wyłączenie formularza logowania lokalnego spowoduje, że ze strony logowania Thulium znikną pola: Login i Hasło. Zmiana tego ustawienia jest dostępna w module Administracja → Parametry systemowe pod hasłem Czy wyświetlać formularz logowania:

      Ważne…⚠️

      Przed wyłączeniem formularza logowania należy się upewnić, że możemy się w systemie bezproblemowo logować Użytkownikiem z rolą Admin.

       
    2. Ustawienie domyślnej roli
      Ustawienie to powoduje, że przy synchronizacji Użytkowników z zewnętrznego źródła, każdy user będzie przypisany do tej Roli. Zmiana tego ustawienia jest dostępna w sekcji Administracja → Parametry systemowe pod kluczem Rola, która zostanie przypisana użytkownikowi po synchronizacji: