PASK 2.0.0- Instrukcja patchowania dla Active Directory /OpenLdap

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ć:

  1. dostawcy serwera domenowego - Active Directory, Open LDAP

  2. dotychczasowego sposobu przypisywania ról w systemie PASK

    1. role nadawane bezpośrednio w PASK w trakcie dodawania użytkownika - role takie zapisywane były w bazie danych systemu PASK

    2. 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:

  1. 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.

  2. Jeżeli dotychczas role w PASK były nadawane bezpośrednio w PASK, możliwe są dwie ścieżki:

    1. 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 !

    2. 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.

image-20240710-071134.png
Diagram scenariuszy migracji

 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

 

  1. Zalogowanie się do PASK kontem administratora lokalnego i przejście do modułu PASK Keycloak za pomocą linku Konta użytkowników.

2.png
Odnośnik do zarządzania kontami użytkowników (Keycloack) w systemie PASK
  1. Przejście w menu bocznym PASK Keycloak do User Federation → Add Ldap providers.

  2. Skonfigurowanie nowego User Federation.

Konfiguracja UserFederation

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 
[przykładowe wartości dla Open LDAP] 

Wartość dla Active Directory 
[przykładowe wartości 
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

Przykładowa konfiguracja dla OpenLDAP

 

 

 

  1. Przetestowanie połączenia (przyciski Test Connection i Test authentication na formularzu edycji User Federation) i zapisanie konfiguracji.

  2. 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

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

  1. Dodanie do skonfigurowanego User Federation mappera grup AD (reprezentujących uprawnienia w PASK).

Konfiguracja Mapera grup AD

Konfiguracja Mapera grup AD

Nazwa pola w konfiguracji mapera w User Federation 

Wartość dla Open LDAP 
[przykładowe wartości dla Open LDAP] 

Wartość dla Active Directory 
[przykładowe wartości 
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 

 

  1. Synchronizacja grup LDAP/AD → Keycloak - grupy powinny zostać dodane do realm w Keycloak wraz istniejąca przynależnością użytkowników.

  1. 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.
Po zaimportowaniu grup z AD/LDAP należy, przykładowo, w grupie odpowiadającej uprawnieniom PASK ADMIN skonfigurować takie samo mapowanie ról jak w grupie domyślnej

Widok listy domyślnych grup konfigurowanych przy wdrożeniu wersji PASK 2.0.0

Widok mapowania ról dla domyślnej grupy PASK ADMIN.
Po zaimportowaniu grup z AD/LDAP należy, przykładowo, w grupie odpowiadającej uprawnieniom PASK ADMIN skonfigurować takie samo mapowanie ról jak w grupie domyślnej

 

 

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)

  1. 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 

  1. 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

  2. dalsze automatyczne zarządzanie uprawnieniami odbywa się za pomocą konektora Keycloak:
    https://paskid.atlassian.net/wiki/x/AYAqHw

Migracja do grup LDAP

UWAGA: Migracja jest zalecana jeszcze w wersji PASK 1.11.X

  1. Utworzenie grup AD/LDAP reprezentujących uprawnienia/role do PASK.

  2. Konfiguracja uprawnień w zasobie reprezentującym PASK, jako uprawnienia realizowane automatycznie przez konektor AD (nazwa techniczna uprawnienia = nazwa grup w AD).

  3. Powtórne nadanie ról w PASK bezpośrednio w domenie AD/LDAP.


Migracja PASK ID (Identyfikator PASK)

  1. 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).

  1. 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

  2. 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.

    1. 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://paskid.atlassian.net/wiki/x/AYAqHw

    2. 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.

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

      1. 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

      2. 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

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.

 Dodatkowe informacje

Konektor Keycloak - konfiguracja automatycznego provisioningu uprawnień w PASK

PASK 2021