Keycloak w wersji 26 przyniósł kilka ciekawych rozwiązań, które mogą z powodzeniem być wykorzystywane w średnich i dużych przedsiębiorstwach. Jednym z nich jest funkcja „Organizacje”, na której skupimy się w poniższym tekście. Omówimy sposób korzystania, konfiguracji oraz to, w jaki sposób może usprawnić zarządzanie użytkownikami w złożonych środowiskach.
Czym są organizacje w Keycloak?
Organizacja w Keycloak reprezentuje podmiot. Może nim być klient lub partner biznesowy. Funkcja ta pozwala na:
- Przypisywanie użytkowników jako członków konkretnej organizacji.
- Definiowanie dedykowanego administratora dla organizacji.
- Ustalanie specyficznych procesów autentykacji dla każdej organizacji.
Dzięki zastosowaniu tej funkcji Keycloak umożliwia tworzenie indywidualnych procesów logowania dla różnych klientów w ramach jednego systemu. Na przykład użytkownicy mogą być rozpoznawani na podstawie domeny ich adresu e-mail, co automatycznie kieruje ich do odpowiedniego procesu logowania.
Funkcjonalność organizacji jest szczególnie istotna w środowiskach korporacyjnych i międzyorganizacyjnych, gdzie zarządzanie użytkownikami jest złożone. Organizacje w Keycloak rozwiązują problem obsługi różnorodnych procesów logowania i personalizacji uwierzytelniania. Przykładowo:
- Firmy świadczące usługi dla wielu klientów mogą tworzyć różne metody logowania i integracji z systemami klientów.
- Organizacje składające się z wielu jednostek biznesowych mogą niezależnie zarządzać użytkownikami i ich uprawnieniami.
- Systemy wymagające federacji z zewnętrznymi dostawcami tożsamości mogą korzystać z dedykowanych flow autentykacji.
Organizacje vs. Grupy – jakie są różnice?
W Keycloak 26 funkcjonalność organizacji i grup pełni różne role, mimo że oba mechanizmy służą do zarządzania użytkownikami. Organizacje są przeznaczone do obsługi bardziej złożonych scenariuszy, takich jak zarządzanie użytkownikami w kontekście różnych klientów lub partnerów biznesowych. Skupiają się na flow autentykacji oraz federacji tożsamości, umożliwiając precyzyjne dopasowanie procesów uwierzytelniania do potrzeb zewnętrznych podmiotów. Z kolei grupy lepiej sprawdzają się przy organizowaniu użytkowników w ramach jednej aplikacji, na przykład do przypisywania uprawnień lub definiowania dostępu do zasobów.
Konfiguracja organizacji
W przypadku rozbudowanych systemów uwierzytelniania funkcjonalność organizacji pozwala na bardziej precyzyjne zarządzanie użytkownikami i ich dostępem w ramach określonych struktur. W dalszej części artykułu pokażemy, jak krok po kroku skonfigurować organizacje w Keycloak, od aktywacji tej funkcji w ustawieniach realmu, po przypisywanie użytkowników do konkretnych grup.
1. Włączenie funkcjonalności organizacji w realmie
Aby skorzystać z funkcji organizacji, należy ją aktywować w ramach ustawień realmu:
Przejdź do Realm Settings > General, a następnie włącz opcję Switch Organizations.
Po aktywacji w menu po lewej stronie pojawi się nowa zakładka: Organizations.
2. Tworzenie nowej organizacji
Wejdź w zakładkę Organizations, wybierz Add Organization, a następnie wypełnij kluczowe pola:
- Name: Unikalna nazwa organizacji, wyświetlana w interfejsie.
- Alias: Unikalny alias używany w URL’ach (niezmienny po zapisaniu).
- Redirect URL: Adres, na który użytkownik zostanie przekierowany po rejestracji lub zaakceptowaniu zaproszenia.
- Domains: Domena używana do rozpoznawania organizacji na podstawie adresu e-mail użytkownika.
Automatyczne przypisywanie na podstawie domeny:
Podczas logowania użytkownik podaje adres e-mail. Keycloak analizuje jego domenę i automatycznie przypisuje go do odpowiedniej organizacji. Dzięki temu użytkownik korzysta z dedykowanego flow autentykacji. Warto zaznaczyć, że Keycloak obsługuje wildcardy w konfiguracji domen, co pozwala na przypisywanie subdomen (np. *.example.com) do tej samej organizacji.
3. Dodawanie użytkowników do organizacji
Użytkowników można przypisać do organizacji na kilka sposobów:
- Istniejący użytkownicy: Dodaj użytkowników już obecnych w realmie (Organizations > Members > Add Realm User).
- Zaproszenia: Wyślij zaproszenie do nowego lub istniejącego użytkownika (Organizations > Members > Add Member > Invite Member).
- Identity Provider: Powiąż dostawcę tożsamości z organizacją, aby automatycznie przypisywać użytkowników (Organizations > Identity Providers > Link Identity Provider).
4. Wyświetlanie użytkowników w organizacji
Lista użytkowników organizacji jest dostępna w sekcji Organizations > [Nazwa Organizacji] > Members. Informacja o przynależności do organizacji może być zawarta w tokenach jako claim organization. Dzięki temu aplikacje mogą różnicować uprawnienia użytkowników.
5. Zarządzanie flow autentykacji
Organizacje w Keycloak umożliwiają zastosowanie dedykowanych flow autentykacji dla użytkowników.
- Identity-first login: Użytkownik podaje najpierw adres e-mail lub nazwę użytkownika, co pozwala Keycloakowi rozpoznać organizację i zastosować dedykowany flow.
- Customizacja flow: Każda organizacja może mieć własny flow autentykacji, co pozwala dostosować procesy logowania do specyficznych wymagań klientów.
Dzięki zastosowaniu funkcji organizacji Keycloak umożliwia zaawansowaną personalizację w systemach IAM, upraszczając jednocześnie zarządzanie użytkownikami i ich dostępem w złożonych środowiskach.
Nowa funkcja zarządzania organizacjami w Keycloak umożliwia tworzenie i administrowanie strukturami organizacyjnymi, takimi jak działy czy zespoły, co znacząco może usprawnić procesy takie jak onboarding czy offboarding pracowników oraz kwestie bezpieczeństwa z nimi związane. Przykładowo, podczas onboardingu nowy pracownik może zostać przypisany do odpowiedniej jednostki organizacyjnej, co automatycznie nadaje mu właściwe uprawnienia i dostęp do niezbędnych zasobów, które mogą mieć także charakter tymczasowy (np. dla pracowników tymczasowych). Analogicznie, w przypadku offboardingu usunięcie pracownika z danej jednostki powoduje natychmiastowe cofnięcie jego uprawnień i dostępu do firmowych zasobów, zwiększając tym samym bezpieczeństwo danych. Dzięki tej funkcji zarządzanie dostępami staje się bardziej zautomatyzowane i bezpieczne, co upraszcza procesy kadrowe w organizacji.
dr inż. Andrzej Chybicki CEO Inero Software