Wstęp
Instalacje PASK w wersjach < 2.0.0 umożliwiały zarządzanie kontami użytkowników wyłącznie w powiązaniu z domeną (z pomocą konektora AD). Utworzenie konta użytkownika dla tożsamości w PASK wymagało wskazania konektora AD, za pośrednictwem którego następowało wiązanie z użytkownikiem domenowym.
Z tego powodu migracja do wersji 2.0.0 przyjmuje, jako domyślny, taki stan początkowy. W zależności od instalacji różnice mogą dotyczyć:
dostawcy serwera domenowego - Active Directory, Open LDAP
dotychczasowego sposobu przypisywania ról w systemie PASK
role nadawane bezpośrednio w PASK w trakcie dodawania użytkownika - role takie zapisywane były w bazie danych systemu PASK
role nadawane poprzez przypisanie użytkownika do grup Ad/LDAP. Przynależność do konkretnej grupy jest mapowana na rolę w PASK w konfiguracji konektora AD. Podczas logowania użytkownik PASK, na podstawie powiązania z użytkownikiem domenowym otrzymuje role zgodnie z tym mapowaniem.
Od wersji 2.0.0 zarządzanie użytkownikami w PASK odbywa się za pośrednictwem modułu PASK Keycloak, będącego częścią instalacji systemu PASK. W związku z tym informacje o istniejących kontach w PASK muszą zostać zmigrowane do PASK Keycloak. Przy założeniu, że konta użytkowników PASK dalej będą powiązane z kontami domenowymi, podstawowy krok migracji wymaga skonfigurowania “połączenia“ do domeny bezpośrednio w Keycloak. W tym celu należy skonfigurować tzw. User Federation, które jest, w pewnym zakresie, odpowiednikiem konfiguracji konektora AD w PASK. Poprawne skonfigurowanie User Federation (patrz instrukcja poniżej) spowoduje zaimportowanie użytkowników domenowych do PASK Keycloak.
Po skonfigurowaniu User Federation należy wykonać dodatkowe operacje pozwalające na migrację identyfikatorów tożsamości powiązanych z kontami użytkowników PASK oraz dotychczasowych ról użytkowników.
Migracja identyfikatorów tożsamości:
Migracja identyfikatorów tożsamości wymagana jest ze względu na potrzebę powiązania konta użytkownika z tożsamością w PASK. Migracja polega na manualnym przypisaniu użytkownikom w PASK Keycloak wartości atrybutu identityId, odpowiadającej identyfikatorowi(PASK ID) tożsamości w PASK. Dla ułatwienia tego procesu przygotowaliśmy dedykowane narzędzie pozwalające na automatyzację tego procesu.
Administrator lokalny:
W trakcie instalacji wersji 2.0.0 utworzone zostanie nowe konto administratora lokalnego PASK (istniejące przestanie być dostępne). Nazwa użytkownika oraz hasło dla nowego konta konfigurowana jest za pomocą zmiennych środowiskowych systemu.
Migracja ról użytkowników:
OPCJA 1: Jeżeli dotychczas role w PASK były nadawane użytkownikom za pomocą grup LDAP - do migracji wymagane jest skonfigurowanie mapowania dla grup LDAP (w obrębie utworzonego User Federation) umożliwiającego import wybranych grup LDAP, oraz przypisanie zaimportowanym grupom odpowiednich ról w PASK (w obrębie PASK Keycloak). Po migracji, nadawanie/odbieranie roli będzie możliwe za pomocą konektora do AD.
Jeżeli dotychczas role w PASK były nadawane bezpośrednio w PASK, możliwe są dwie ścieżki:
migracja istniejących ról PASK do grup LDAP oraz wykonanie zadań opisanych w pkt. 1 niniejszego akapitu (tzw. opcja 1). UWAGA Migracja zalecana jest do wykonania jeszcze w wersji 1.11.X !
OPCJA 2: Ręczna migracja istniejącego przypisania ról użytkownikom bezpośrednio do PASK Keycloak. Dla ułatwienia tego procesu przygotowaliśmy dedykowane narzędzie pozwalające na automatyzację tego procesu. Po migracji, nadawanie/odbieranie roli będzie możliwe możliwe za pomocą dedykowanego konektora lub w sposób manualny bezpośrednio w PASK Keycloak.
\uD83D\uDCD8 Instrukcja
UWAGA! Przy inicjalizacji wersji 2.0.0 automatycznie utworzony zostanie dedykowany obszar (realm) w PASK Keycloak z domyślną konfiguracją i jednym użytkownikiem posiadającym uprawnienia administratora (administrator lokalny).
Nazwa użytkownika oraz hasło administratora lokalnego są dostarczane w trakcie inicjalizacji wersji 2.0.0 za pomocą zmiennych środowiskowych PASK_ADMIN oraz PASK_ADMIN_PASSWORD.
Konfiguracja User Federation
Zalogowanie się do PASK kontem administratora lokalnego i przejście do modułu PASK Keycloak za pomocą linku Konta użytkowników.
Przejście w menu bocznym PASK Keycloak do User Federation → Add Ldap providers.
Skonfigurowanie nowego User Federation.
Konfiguracja UserFederation | |||
---|---|---|---|
UWAGA! User Federation w PASK Keycloak jest konfigurowana wyłącznie w trybie odczytu danych z AD/LDAP. Zaleca się skonfigurowanie użytkownika (Bind DN), posiadającego uprawnienia tylko do odczytu. | |||
Nazwa pola w konfiguracji User Federation | Wartość dla Open LDAP | Wartość dla Active Directory | Źródło wartości w przypadku migracji do wersji 2.0.0 (nazwa pola konektora AD w PASK) |
Vendor | Other | Active Directory | - |
Connection URL |
|
| URL w edycji konektora |
Bind DN |
|
| Użytkownik w edycji konektora |
Edit mode | UNSYNCED | UNSYNCED | - |
Users DN |
|
| Podstawowe OU w edycji konektora |
Username LDAP attribute | [cn, uid] | [sAMAccountName, cn] | Główny atrybut (User Name Attribute) w konfiguracji konektora |
RDN LDAP attribute | [cn, uid] | [sAMAccountName, cn] | Główny atrybut (User Name Attribute) w konfiguracji konektora |
UUID LDAP attribute | [entryUUID, uidNumber] | [objectGUID] | Unikalny atrybut użytkownika (User Unique Attribute) w konfiguracji konektora |
User object classes | [posixAccount, inetOrgPerson] | [person, organizationalPerson,user] | Klasy obiektu (User Object Classes) w konfiguracji konektora |
User LDAP filter |
|
| Filtr do szukania użytkowników (User Object Filter) |
Search scope |
|
|
|
Import users | ON | ON | - |
Sync Registrations | OFF | OFF | - |
Periodic changed users sync | ON | ON | - |
Przykładowa konfiguracja:
Przykładowa konfiguracja dla OpenLDAP | ||
---|---|---|
Przetestowanie połączenia (przyciski Test Connection i Test authentication na formularzu edycji User Federation) i zapisanie konfiguracji.
Wykonanie próbnego importu użytkowników (należy zweryfikować czy domyślne mapowanie dla imienia, nazwiska oraz email, które są automatycznie konfigurowane razem z federacją, mapują odpowiednie atrybuty w AD/LDAP).
Wyzwolenie synchronizacji użytkowników w federacji | Widok z domyślnym mapowaniem w Federacji | Formularz wybranego mapera - należy zweryfikować czy LDAP Attribute domyślnie ustawiony poprawnie identyfikuje określone dane (np. Imię) w AD/LDAP i dokonać stosownej korekty w razie potrzeby |
---|---|---|
Migracja ról użytkowników
OPCJA 1: Ścieżka patchowania w przypadku mapowania Roli PASK za pomocą grupy LDAP
Dodanie do skonfigurowanego User Federation mappera grup AD (reprezentujących uprawnienia w PASK).
Konfiguracja Mapera grup AD | |||
---|---|---|---|
Nazwa pola w konfiguracji mapera w User Federation | Wartość dla Open LDAP | Wartość dla Active Directory | Źródło wartości w przypadku migracji do wersji 2.0.0 (nazwa pola konektora AD w PASK) |
Mapper type | group-ldap-mapper | group-ldap-mapper |
|
LDAP Groups DN |
|
|
|
Group Name LDAP Attribute | [cn] | [cn] | Grupy -> Główny atrybut (Group Name Attribute) w konfiguracji konektora |
Group Object Classes | [posixGroup, groupOfNames] | [group] | Grupy -> Klasy obiektu (Group Object Classes) w konfiguracji konektora |
Preserve Group Inheritance
| OFF | OFF |
|
Ignore Missing Groups | OFF | OFF |
|
Membership LDAP Attribute | memberUid | member | Grupy -> Atrybut członków grupy (Group Membership Attribute) w konfiguracji konektora |
Membership Attribute Type | UID | DN |
|
Membership User LDAP Attribute | [cn, uid] |
|
|
Mode | READ_ONLY | READ_ONLY |
|
User Groups Retrieve Strategy | LOAD_GROUPS_BY_MEMEBER_ATTRIBUTE | LOAD_GROUPS_BY_MEMEBER_ATTRIBUTE |
|
|
|
|
|
Drop non-existing groups during sync | OFF | OFF |
|
Synchronizacja grup LDAP/AD → Keycloak - grupy powinny zostać dodane do realm w Keycloak wraz istniejąca przynależnością użytkowników.
Przypisanie grupom odpowiadających im ról w PASK (można to zrobić na podstawie przykładowych grup domyślnie konfigurowanych w PASK Keycloak)
Widok listy domyślnych grup konfigurowanych przy wdrożeniu wersji PASK 2.0.0 | Widok mapowania ról dla domyślnej grupy PASK ADMIN. |
---|---|
OPCJA 2: Ścieżka patchowania w przypadku dotychczasowego mapowania ról PASK bezpośrednio w PASK na poziomie bazy danych
Istnieją dwie możliwość migracji:
Migracja lokalnie (bezpośrednio w Keycloak)
Migracja do grup LDAP
Migracja lokalnie (bezpośrednio w Keycloak)
Posiadane przez dotychczasowych użytkowników role w PASK powinny zostać zmapowane na przypisanie do odpowiednich, predefiniowanych grup.
Mapowanie ról PASK na grupy w PASK Keycloak | |
Rola | Nazwa predefiniowanej grupy w PASK Keycloak |
Administrator | PASK ADMIN |
Audytor | PASK AUDITOR |
Użytkownik biznesowy | PASK BUSINESS_USER |
Użytkownik | PASK USER |
Przy dużej liczbie użytkowników zaleca się skorzystanie z dedykowanego narzędzia migracyjnego - keycloak-manager’a, którego opis znajduje się "w instrukcji patchowania 1.11.1 -> 2.0.0”
dalsze automatyczne zarządzanie uprawnieniami odbywa się za pomocą konektora Keycloak:
https://uniteam.atlassian.net/wiki/spaces/IAM/pages/499286017
Migracja do grup LDAP
UWAGA: Migracja jest zalecana jeszcze w wersji PASK 1.11.X
Utworzenie grup AD/LDAP reprezentujących uprawnienia/role do PASK.
Konfiguracja uprawnień w zasobie reprezentującym PASK, jako uprawnienia realizowane automatycznie przez konektor AD (nazwa techniczna uprawnienia = nazwa grup w AD).
Powtórne nadanie ról w PASK bezpośrednio w domenie AD/LDAP.
Migracja PASK ID (Identyfikator PASK)
Powiązanie użytkownika PASK Keycloak z tożsamością w PASK odbywa się poprzez zapisanie w atrybucie użytkownika PASK Keycloak o nazwie identityId, wartości identyfikatora tożsamości PASK (PASK ID/Identyfikator PASK).
Do przeprowadzenia operacji zaleca się wykorzystać dedykowane narzędzie migracyjne - keycloak-manager’a, którego opis znajduje się "w instrukcji patchowania 1.11.1 -> 2.0.0”
Przypisywanie nowym użytkownikom identyfikatora tożsamości w wersji 2.0.0+ może zostać zrealizowane w zależności od metody zarządzania użytkownikami i uprawnieniami w PASK.
nadawanie uprawnień do PASK za pomocą konektora Keycloak. Provisioning uprawnień dla zasobu PASK może być realizowany automatycznie z wykorzystaniem konektora Keycloak (nowość w wersji 2.0.0). Konfiguracja konektora pozwala na włączenie opcji, która powoduje akcję utworzenia użytkownika, jeżeli nie istnieje on w Keycloak w momencie nadawania uprawnień. Szczegółowy opis konfiguracji konektora: https://uniteam.atlassian.net/wiki/spaces/IAM/pages/499286017
za pomocą atrybut użytkownika LDAP - jeżeli nadawanie uprawnień do systemu PASK odbywa się za pomocą grup LDAP i konektora AD wymagane jest aby w konektorze AD, wykorzystywanym do tworzenia kont (użytkowników) LDAP, skonfigurowany był dodatkowy atrybut użytkownika LDAP w którym przechowywany będzie identyfikator tożsamości PASK.
Następnie atrybut LDAP musi zostać zmapowany w PASK Keycloak w ramach skonfigurowanego User Federation, do atrybutu usera Keycloak o nazwie identityId_FromLDAP. Poniżej opisano kroki realizacji mapowania. UWAGA! Opis zakłada (przykładowo), że na serwerze domenowym LDAP jest skonfigurowany atrybut o nazwie paskId, który wykorzystywany jest do mapowania. W konkretnym rozwiązaniu ta nazwa może być inna .
PASK - Konfiguracja tworzenia kont w konektorze AD wykorzystywanym w procesie tworzenia kont użytkowników LDAP. Ustawienie reguły dla atrybutu o nazwie paskId na wartość Identyfikator PASK
PASK Keycloak - Dodaniemappera typu user-attribute-ldap-mapper w skonfigurowanym UserFederation, mapujący atrybut LDAP paskId na atrybut Keycloak identityId_FromLDAP.
Przykładowy widok konfiguracji mapowania atrybutu użytkownika w ramach UserFederation | Dane przykładowego użytkownika z identyfikatorem tożsamości mapowanym z AD/LDAP |
---|---|
UWAGA - potencjalny Konflikt w przypadku stosowania dwóch metod.
Jeżeli do mapowania identyfikatora tożsamości wykorzystane zostały obie metody to atrybuty identityId oraz identityId_FromLDAP powinny być ustawiane dla danego użytkownika albo ekskluzywnie (XOR) albo powinny przyjmować taką samą wartość. Jeżeli atrybuty posiadają różne wartości to konflikt rozwiązywany jest niedeterministycznie.
Zarządzanie KeyCloak -użytkownik lokalny
Osobny Zasób - dodanie Roli Manage Realm (administrator)
Add Comment