Federacja AD w Keycloak

Federacja AD w Keycloak

 


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

3.png

 

 

4.png

 

5.png
  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

6.png

 

7.png
8.png


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.

9.png
  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

10.png

 

11.png

 

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:
    Konektor Keycloak - konfiguracja automatycznego provisioningu uprawnień w PASKarchived

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

12.png

  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: Konektor Keycloak - konfiguracja automatycznego provisioningu uprawnień w PASKarchived

    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

 

13.png

 

 

14.png

 

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)

 Dodatkowe informacje

Konektor Keycloak - konfiguracja automatycznego provisioningu uprawnień w PASKarchived

PASK 2021