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
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:
Konektor Keycloak - konfiguracja automatycznego provisioningu uprawnień w PASKarchived
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: Konektor Keycloak - konfiguracja automatycznego provisioningu uprawnień w PASKarchived
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)
Dodatkowe informacje
Konektor Keycloak - konfiguracja automatycznego provisioningu uprawnień w PASKarchived
PASK 2021