-

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

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.

  1. Brak kosztów licencyjnych - nie płacimy za użytkowników, tylko za hosting, co dotyczy zarówno Drupala, jak i Keycloak.
  2. 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.
  3. 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.

Narzędzie Keycloak można łatwo zainstalować przy pomocy Dockera

 

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.

Konfigurowanie połączenia Drupala z Keycloakiem po stronie Keycloaka

 

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.

Konfigurowanie integracji Drupala z Keycloakiem po stronie Drupala

 

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.

Strona logowania w narzędziu do zarządzania tożsamością Keycloak

 

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

Po zalogowaniu się w Keycloaku, użytkownik automatycznie przechodzi do Drupala

 

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.

-