Konektor Keycloak - konfiguracja automatycznego provisioningu uprawnień w PASK
Wstęp
Konektor Keycloak jest generycznym konektorem pozwalającym, w zależności od wybranej opcji, na dodawanie użytkowników do grup lub przypisywanie użytkownikom ról (tak obszarowych jak i klienckich). Celem niniejszej instrukcji jest opisanie dedykowanej konfiguracji konektora Keycloak dla potrzeb automatycznego provisioningu uprawnień w systemie PASK.
System PASK, od wersji 2.0.0 wykorzystuje Keycloak jako narzędzie autoryzacji, uwierzytelniania oraz zarządzania użytkownikami w PASK. Jeżeli instalacja systemu PASK nie wykorzystuje domeny jako źródła uprawnień dla użytkowników (mapowanie grup LDAP na grupy Keycloak, uprawnienia mogą być nadawane/odbierane manualnie w module PASK Keycloak lub automatycznie za pośrednictwem konektora Keycloak i odpowiednio skonfigurowanego zasobu w systemie PASK. Ze względu na wygodę rozwiązania zaleca się automatyzację provisioningu uprawnień. W tym celu należy:
Zarejestrować klienta w module PASK Keycloak i nadać uprawnienia do zarządzania obszarem użytkownikowi serwisowemu
Utworzyć i skonfigurować konektor Keycloak w PASK.
Skonfigurować zasób reprezentujący PASK w przestrzeni zasobów systemu PASK w taki sposób aby uprawnienia były realizowane automatycznie za pośrednictwem zdefiniowanego konektora Keycloak.
Niniejsza instrukcja opisuje dwa pierwsze kroki.
Instrukcja
Rejestracja klienta w module PASK Keycloack
Rejestracja klienta w obszarze (realm) modułu PASK Keycloak.
Po zalogowaniu się z prawami administratora do PASK należy z prawego wysuwanego menu wybrać opcję Konta użytkowników. Przeniesie nas ona do osobnej zakładki w przeglądarce, w której wyświetli się interfejs modułu PASK Keycloak.
b. Z menu bocznego PASK Keycloak należy wybrać pozycję Klienci (Clients) a następnie Utwórz klienta (Create client).
c. Ustawienia ogólne (General settings):
i. ID klienta (Client ID) - identyfikator klienta, który będzie wykorzystany w konfiguracji konektora,
d. Konfiguracja zdolności (Capability config):
i. Uwierzytelnianie klienta (Client authentication) - włączone
ii. Przepływ uwierzytelniania (Authentication flow) → pozostawiamy włączoną jedynie opcję Role kont usług (Service accounts roles)
iii. Pozostałe ustawienia zostawiamy bez zmian.
iv. Zapisujemy klienta
e. Przypisanie roli administratora obszaru użytkownikowi serwisowemu
i. Wejdź w ustawienia utworzonego klienta i wybierz zakładkę Role kont usług (Service account roles)
ii. Wybierz opcję Przypisz role (Assign role) i w liście rozwijalnej filtracji wybierz Filtruj według klientów (Filter by clients)
iv. Znajdź i zaznacz rolę: realm-management realm-admin i przypisz ją
Utworzenie konektora Keycloak w PASK
Z poziomu listy konektorów w PASK dodaj nowy konektor Keycloak i wprowadź wymagane informacje
Nazwa - biznesowa nazwa konektora, wykorzystywana w PASK
URL - FQDN instalacji pask z suffixem /keycloak.
Realm (obszar) - w przypadku standardowe instalacji “on premise” u klienta, jest to identyfikator (UUID) instalacji PASK.
Identyfikator klienta - ID klienta (Client ID) nadany przy rejestracji klienta w obszarze Pask Keycloak, opisanej w punkcie 1 niniejszej instrukcji.
Secret - klucz tajny klienta dostępny w konfiguracji klienta utworzonego w punkcie 1 (Szczegóły klienta (Client details) → zakładka Poświadczenia (Credentials) → Sekret klienta (Client secret).
przetestuj poprawność połączenia i zapisz zmiany.
Konfiguracja utworzonego konektora Keycloak
Z poziomu listy konektorów znajdź utworzony konektor i wybierz opcję Konfiguruj.
Skonfiguruj konektor zgodnie z poniższym opisem:
Sposób działania - w podstawowej konfiguracji zalecane jest zarządzanie uprawnieniami za pośrednictwem grup. Domyślnie obszar (realm) klienta w module PASK Keycloak zawiera cztery prekonfigurowane grupy reprezentujące podstawowe role użytkowników PASK (administrator, audytor, użytkownik biznesowy, użytkownik). Dodanie użytkownika do grupy powoduje przypisanie mu określonego zestawu uprawnień PASK.
Schemat wyliczania loginu - reguła wyliczania loginu wymagana do wyszukania użytkownika w PASK Keycloak dla potrzeb provisioningu (przypisania do grupy lub nadania roli). Jeżeli np. jako źródło użytkowników wykorzystywana jest domena ( za pośrednictwem federacji), regułą powinna być zgodna z zasadami tworzenia nazw użytkowników w domenie. Jeżeli włączona jest operacja dodatkowa (patrz poniżej) regułą jest dodatkowo wykorzystywana do wyliczania nazw użytkowników dla tworzonych kont.
Utwórz konto, jeśli nie istnieje - opcja ta powinna zostać włączona jeżeli do uwierzytelniania użytkowników jest wykorzystywany dostawca tożsamości (IDP), np Microsoft. Konektor Keycloak automatycznie utworzy konto przy nadawaniu uprawnień. Od tego momentu będzie możliwość uwierzytelniania się danego użytkownika za pomocą skonfigurowanego IDP.
Aktualizuj atrybuty przy każdej akcji konektora - opcja ta powinna zostać włączona jeżeli źródłem użytkowników w PASK Keycloak jest federacja (AD/LDAP) i gdy w danych domenowych (atrybutach użytkownika LDAP) nie ma identyfikatora tożsamości w PASK. Jeżeli do uwierzytelniania użytkowników jest wykorzystywany dostawca tożsamości (IDP), np Microsoft (patrz powyżej) domyślnie konto użytkownika w PASK Keycloak jest tworzone przez konektor i zaleca się włączenie tej opcji jeżeli mapowaniu podlegają dodatkowe atrybuty tożsamości, które mogą ulegać zmianom w czasie działania systemu a chcemy je propagować do konta użytkownika.
Mapowanie atrybutów (konfiguracja dostępna po wybraniu przynajmniej jednej z opcji Utwórz konto, jeśli nie istnieje / Aktualizuj atrybuty przy każdej akcji konektora) - poprawne działanie systemu wymaga przypisania użytkownikowi identyfikatora odpowiadającej mu tożsamości w PASK (nie dotyczy konta lokalnego administratora). Jeżeli identyfikator ten nie jest dostarczany inaczej, należy utworzyć przynajmniej jedno mapowanie, które atrybutowi użytkownika w PASK Keycloak o nazwie identityId przypisze wartość identyfikatora tożsamości w PASK (reguła: Atrybut → Identyfikator PASK). Jeżeli wartości atrybutów imię, nazwisko oraz email nie są mapowane z zewnętrznych danych ( w przypadku federacji z atrybutów użytkownika LDAP, w przypadku dostawcy tożsamości z tokenu dostępowego) zaleca się dodanie odpowiedniego mapowania w konektorze:
Przykładowa konfiguracja mapowania atrybutów | ||
Atrybut użytkownika | Reguła mapowania | Wymagany |
identityId | Atrybut → Identyfikator PASK | Tak/NIE (patrz opis powyżej) |
firstName | Atrybut → Imię | Nie (patrz opis powyżej) |
lastName | Atrybut → Nazwisko | Nie (patrz opis powyżej) |
Atrybut → E-mail | Nie (patrz opis powyżej) |
Dodatkowe informacje
Zarządzanie konektorami wymaga posiadania przez użytkownika PASK uprawnień U18 i U19
PASK 2021