
Drupal i Keycloak - jak skonfigurować integrację i jakie korzyści przynosi?
Jeden login do wszystkich systemów firmowych, automatyczne synchronizowanie użytkowników między różnymi narzędziami i zarządzanie dostępami bez angażowania programistów przy każdej zmianie. To przykłady korzyści, które daje integracja Keycloak z Drupalem. W artykule pokażę, jak łatwo można skonfigurować integrację tych narzędzi i dlaczego to rozwiązanie oszczędza dużo czasu działom HR i IT. Wykorzystuję tutaj informacje z mojego filrmu, który możesz obejrzeć na kanale Nowoczesny Drupal.
W tym artykule:
- Problem wielu systemów i kont użytkowników w firmach
- Czym jest Keycloak i dlaczego warto go wybrać?
- Korzyści z połączenia Keycloak z Drupalem
- Jak skonfigurować integrację Drupala z Keycloakiem?
- Demo działania systemu w praktyce
- Możliwości rozbudowy i dostosowania
- Oszczędności czasowe i finansowe dla firm
- Wsparcie we wdrożeniu integracji Drupala i Keycloak
Problem wielu systemów i kont użytkowników w firmach
Większość firm ma dzisiaj kilka lub kilkanaście systemów - intranety, systemy CMS, narzędzia do marketing automation, CRM-y, systemy do zarządzania zasobami ludzkimi, systemy do zarządzania zadaniami oraz narzędzia komunikacyjne. Każdy z nich wymaga osobnych kont użytkowników.
Dział HR przy zatrudnieniu nowego pracownika musi utworzyć mu konta w kilku miejscach, a przy zwolnieniu musi pamiętać o tym, aby te konta dezaktywować lub usunąć. Zespół IT z kolei codziennie zajmuje się resetowaniem haseł, bo pracownicy mają odmienne hasła do różnych systemów i je zapominają.
W firmach często brakuje centralnej kontroli nad dostępami i kontami użytkowników. Jeśli organizacja zatrudnia od kilkudziesięciu do kilku tysięcy osób, powoduje to bardzo duży problem. Warto się zastanowić, jak można go rozwiązać.
Czym jest Keycloak i dlaczego warto go wybrać?
Keycloak to open source'owy system do zarządzania tożsamością, który rozwiązuje wyżej opisane problemy. Program pozwala na centralne zarządzanie wszystkimi kontami użytkowników w firmie. Pracownik loguje się raz i ma dostęp do wszystkich systemów, do których ma uprawnienia.
Dział HR może zarządzać dostępami z jednego miejsca, a dział IT nie musi już poświęcać czasu na rozwiązywanie problemów z hasłami czy logowaniem w każdym systemie osobno - zajmuje się tylko tym jednym systemem do zarządzania użytkownikami.
Alternatywne rozwiązania na rynku
Na rynku dostępnych jest sporo alternatywnych rozwiązań do zarządzania tożsamością. Przyjrzymy się kilku z nich. Microsoft Entra ID (wcześniej Azure Active Directory) od Microsoftu to jedno z najpopularniejszych rozwiązań typu enterprise, które kosztuje około 6 dolarów za użytkownika miesięcznie w planie podstawowym. Microsoft Entra ID oferuje integrację z ekosystemem Microsoft, ale wiąże się z vendor lock-inem (czyli przywiązaniem do jednego dostawcy) i zwiekszającymi się kosztami wraz ze wzrostem liczby pracowników.
Okta to kolejne popularne rozwiązanie SaaS, które specjalizuje się w zarządzaniu tożsamością i dostępem. Podobnie jak Auth0 (obecnie część Okta), oferuje pakiety zaczynające się od kilkuset dolarów miesięcznie za kilka tysięcy aktywnych użytkowników. Te platformy są bogate w funkcje, ale ich koszty mogą szybko rosnąć w większych organizacjach.
Google Workspace także zapewnia funkcje Single Sign-On, ale jest bardziej skoncentrowane na aplikacjach Google i może nie pokrywać wszystkich potrzeb firm korzystających z różnorodnych systemów.
Istnieje również możliwość zbudowania własnego rozwiązania w oparciu o LDAP (Lightweight Directory Access Protocol), ale wymaga to znacznej wiedzy technicznej i zasobów deweloperskich.
Keycloak wyróżnia się jako atrakcyjna alternatywa, ponieważ jako system open source jest darmowy - płacimy jedynie za hosting i ewentualne wsparcie techniczne. Podobnie jak Drupala, możemy go zainstalować na dowolnym serwerze - wewnątrz firmy lub w chmurze zewnętrznej. Kluczowa zaleta to brak kosztów licencyjnych za użytkowników - niezależnie od tego, czy mamy 1000 czy 5000 pracowników, koszty infrastruktury pozostają stałe i nie rosną liniowo wraz z rozwojem organizacji.
Korzyści z połączenia Keycloak z Drupalem
Połączenie Keycloak z Drupalem daje kilka istotnych korzyści dla organizacji.
- Brak kosztów licencyjnych - nie płacimy za użytkowników, tylko za hosting, co dotyczy zarówno Drupala, jak i Keycloak.
- Mamy pełną kontrolę nad danymi użytkowników, co jest ważne ze względu na bezpieczeństwo oraz obowiązki wynikające z RODO.
- Mamy możliwość pełnego dostosowania narzędzia do potrzeb firmy, bo nie jesteśmy ograniczeni gotowymi rozwiązaniami. Możemy dopasować system jak chcemy, ponieważ oba oprogramowania to open source.
Jeśli firma ma już systemy na Drupalu - na przykład intranet albo stronę internetową - integracja Keycloak z tymi systemami jest bardzo prosta.
Jak skonfigurować integrację Drupala z Keycloakiem?
Aby połączyć Keycloak z Drupalem, potrzebujemy kilku elementów. Po stronie Drupala niezbędny jest moduł Keycloak oraz moduł OpenID Connect, na którym bazuje integracja. Keycloak można zainstalować lokalnie używając Dockera - to najszybszy sposób na przetestowanie rozwiązania.

Konfiguracja po stronie Keycloak
W Keycloak musimy skonfigurować tak zwany realm - przestrzeń dla naszej organizacji. W ramach realm definiujemy szczegóły klienta, adresy do przekierowań oraz innych parametrów bezpieczeństwa. Możemy też dodać użytkowników testowych z podstawowymi danymi jak imię, nazwisko i adres email.

Konfiguracja po stronie Drupala
W Drupalu przechodzimy do konfiguracji modułu OpenID Connect i zaznaczamy opcję Keycloak. Wpisujemy redirect URL, który trzeba skopiować do ustawień Keycloak, client ID oraz client secret, który kopiujemy z ustawień z Keycloak. Podajemy także Keycloak base URL oraz nazwę Keycloak realm.

Demo działania systemu w praktyce
Po skonfigurowaniu integracji proces logowania wygląda bardzo prosto. Klikamy przycisk login na stronie Drupala i zostajemy przekierowani do Keycloaka.

Po zalogowaniu się w Keycloaku, zostajemy automatycznie przekierowani z powrotem do Drupala - już jako zalogowany użytkownik.

Kluczowa jest automatyczna synchronizacja - jeśli użytkownik istnieje w Keycloak, ale nie ma jeszcze konta w Drupalu, system automatycznie tworzy nowe konto podczas pierwszego logowania. Administrator Drupala widzi w panelu, że nowe konto zostało utworzone bez jego ingerencji. Dzięki temu można zarządzać kontami centralnie w Keycloak, a użytkownicy mogą logować się do intranetu czy innych instancji Drupala bez konieczności ręcznego tworzenia kont w każdym systemie osobno.
Możliwości rozbudowy i dostosowania
Pokazana integracja Keycloak z Drupalem to dopiero podstawowa konfiguracja. Oba systemy można znacznie rozbudować i zmienić konfigurację po obu stronach, aby lepiej dopasować rozwiązanie do potrzeb konkretnej firmy.
Synchronizacja dodatkowych pól użytkownika
Jedną z najczęściej wykorzystywanych możliwości jest dodanie customowych pól do profilu użytkownika w Keycloak i synchronizowanie tych wartości do Drupala. Na przykład można dodać pola takie jak imię, nazwisko, numer telefonu, stanowisko czy dział. Kluczowa zaleta to automatyczna synchronizacja - jeśli numer telefonu zostanie zmieniony w Keycloak, ta zmiana automatycznie zsynchronizuje się z Drupalem i innymi podłączonymi systemami. Dzięki temu administrator nie musi ręcznie aktualizować danych użytkownika w każdym systemie osobno. Wystarczy jedna zmiana w Keycloak, a wszystkie połączone aplikacje otrzymają zaktualizowane informacje.
Zwiększenie bezpieczeństwa - uwierzytelnianie dwuskładnikowe
Aby cały system logowania był jeszcze bezpieczniejszy, można dodać weryfikację dwuetapową (2FA). Keycloak oferuje wbudowane wsparcie dla różnych metod 2FA, w tym:
- aplikacje mobilne typu Google Authenticator czy Microsoft Authenticator,
- kody SMS,
- klucze sprzętowe FIDO2,
- powiadomienia push.
Implementacja 2FA znacząco podnosi poziom bezpieczeństwa organizacji, co jest szczególnie istotne w przypadku dostępu do wrażliwych danych firmowych czy systemów krytycznych dla działalności biznesowej.
Integracja z innymi systemami firmowymi
Keycloak można połączyć z wieloma różnymi systemami używanymi w firmie - nie tylko z Drupalem. Jest to popularne rozwiązanie i często do różnych aplikacji są już gotowe moduły, wtyczki czy biblioteki, dzięki którym można łatwo zintegrować się z Keycloak.
Przykłady systemów, które można zintegrować z Keycloak:
- systemy CRM (Customer Relationship Management),
- narzędzia do zarządzania projektami (Jira, Confluence),
- aplikacje do komunikacji zespołowej (Mattermost, Rocket.Chat),
- systemy e-learningowe i szkoleniowe,
- narzędzia analityczne i business intelligence,
- firmowe aplikacje mobilne.
Mapowanie ról i uprawnień
Zaawansowaną możliwością jest skonfigurowanie mapowania ról między Keycloakiem a Drupalem. Można utworzyć role w Keycloaku (np. Marketing Manager, Sales Representative, HR Specialist) i automatycznie przypisywać odpowiednie uprawnienia w Drupalu na podstawie tych ról. Dzięki temu nowy pracownik automatycznie otrzymuje dostęp do odpowiednich sekcji intranetu czy innych systemów na podstawie swojego stanowiska.
Możliwości dla różnych typów systemów
Jeśli firma ma systemy CMS na Drupalu (strony internetowe lub intranety), integracja przebiega podobnie jak pokazaliśmy w demonstracji. Jednak Keycloak jest na tyle elastyczny, że można go zintegrować także z systemami napisanymi w innych technologiach:
- aplikacjami webowymi w PHP, Java, .NET, Python,
- aplikacjami mobilnymia na iOS i Android,
- systemami legacy z obsługą SAML lub LDAP,
- mikrousługami i aplikacjami opartymi o architekturę kontenerową.
Elastyczność konfiguracji
Zaletą rozwiązań open source jest możliwość pełnej customizacji. Można dostosować wygląd strony logowania Keycloak do identyfikacji wizualnej firmy, skonfigurować niestandardowe przepływy uwierzytelniania lub zintegrować z istniejącymi systemami Active Directory lub LDAP.
Taka elastyczność pozwala na stworzenie rozwiązania idealnie dopasowanego do specyficznych potrzeb organizacji, bez ograniczeń narzucanych przez gotowe, komercyjne systemy zarządzania tożsamością.
Oszczędności czasowe i finansowe dla firm
Integracja systemu Keycloak z Drupalem lub Open Intranetem przynosi firmie konkretne oszczędności.
- Brak kosztów licencyjnych za każdego użytkownika - nie trzeba płacić 5-10 dolarów miesięcznie za każdego nowego pracownika w firmie.
- Lepsze bezpieczeństwo przez centralną kontrolę dostępów w firmie - wszystkimi dostępami zarządzamy z jednego centralnego systemu Keycloak.
- Łatwa skalowalność przy dodawaniu nowych systemów - jeśli integrujemy nowe aplikacje czy wprowadzamy nowe narzędzia w organizacji, możemy je także połączyć z Keycloak i nie musimy się przejmować dodawaniem kont użytkowników.
Konkretne korzyści dla działów
Dla działu HR oznacza to koniec z ręcznym tworzeniem i usuwaniem kont w wielu systemach przy zatrudnieniu czy zwolnieniu pracownika. Dla działu IT to znacznie mniej zgłoszeń związanych z resetowaniem haseł i problemami z logowaniem do różnych aplikacji.
Pracownicy zyskują wygodę - jeden login daje dostęp do wszystkich narzędzi firmowych, które są im potrzebne do pracy. Nie muszą pamiętać wielu różnych haseł ani marnować czasu na logowanie się do kolejnych systemów.
Wsparcie we wdrożeniu integracji Drupala i Keycloak
Jeśli rozważasz wdrożenie centralnego systemu zarządzania kontami w firmie lub chcesz zintegrować istniejące systemy, oferujemy pełne wsparcie w tym zakresie. Nasza agencja drupalowa pomoże zaplanować architekturę, skonfigurować Keycloak z Drupalem oraz z innymi systemami używanymi w Twojej organizacji. Możemy przeprowadzić migrację istniejących użytkowników oraz zapewnić wsparcie w utrzymaniu systemów - zarówno Keycloak, jak i systemów na Drupalu typu intranet czy CMS.
***
Ten artykuł powstał na bazie materiału wideo. Zapraszamy do subskrybowania kanału Nowoczesny Drupal, gdzie w każdy piątek o 12:00 publikujemy nowy film. Nasi eksperci prezentują rozwiązania lub gotowe narzędzia, które pomogą Ci wykorzystać pełen potencjał Drupala.