-

Jak zintegrować Drupala z serwerem LDAP? Kompleksowy przewodnik krok po kroku

W tym artykule zaprezentuję, jak zintegrować Drupala z serwerem Lightweight Directory Access Protocol (LDAP) na przykładzie JumpCloud. Dzięki temu przewodnikowi zyskasz możliwość szybkiego i bezpiecznego zarządzania użytkownikami na swojej stronie internetowej. Zachęcam do przeczytania wpisu lub obejrzenia wideo z serii Nowoczesny Drupal.

Wprowadzenie do zarządzania użytkownikami

W nowoczesnych środowiskach IT, szczególnie w dużych firmach i organizacjach, zarządzanie użytkownikami w różnych systemach i aplikacjach staje się coraz większym wyzwaniem. Gdy liczba użytkowników rośnie, administratorzy często muszą aktualizować dane każdej osoby w wielu miejscach. Takie podejście bywa nie tylko czasochłonne, ale też zwiększa ryzyko błędów oraz niespójności w informacjach.

Dodatkowo, każda zmiana stanowiska czy danych osobowych oznacza konieczność ręcznej aktualizacji profili we wszystkich systemach, co może być bardzo trudne do utrzymania na bieżąco. Aby uprościć zarządzanie danymi użytkowników, wiele organizacji decyduje się na wdrożenie centralnych katalogów, które przechowują informacje o użytkownikach oraz ich uprawnieniach.

Drupal, jako chętnie wybierany system CMS, świetnie nadaje się do integracji z takimi katalogami, ponieważ umożliwia wykorzystanie jednego centralnego punktu zarządzania użytkownikami, ułatwiając pracę administratorów. Dzięki integracji z serwerem LDAP, Drupal pozwala na logowanie się do wielu systemów przy pomocy jednego zestawu danych.

W dalszej części artykułu zobaczysz, jak zintegrować Drupala z serwerem LDAP, aby umożliwić jednokrotne logowanie (SSO) oraz centralne zarządzanie użytkownikami na przykładzie JumpCloud. Analogicznie możesz odtworzyć to dla innego serwera LDAP,  np. Microsoft Entra czy OpenLDAP.

Gdzie warto stosować LDAP i komu się to przyda?

Integracja z LDAP jest szczególnie przydatna w organizacjach, które zatrudniają duże zespoły, posiadają liczne systemy informatyczne lub potrzebują scentralizowanego zarządzania danymi użytkowników. LDAP znajduje zastosowanie w:

  • Firmach i korporacjach – które potrzebują ujednoliconego systemu logowania do wielu aplikacji. Dzięki LDAP pracownicy mogą logować się do różnych narzędzi za pomocą jednego konta. W tym przypadku taką integrację najczęściej przeprowadza się w systemach intranetowych.
  • Portalach informacyjnych – zatrudniających wielu redaktorów o różnych poziomach uprawnień. LDAP na portalach informacyjnych umożliwia szybką aktualizację danych użytkowników.
  • Sektorze edukacyjnym – w szkołach i uczelniach, gdzie trzeba zarządzać danymi dużej liczby studentów, wykładowców i pracowników administracyjnych. Centralny katalog LDAP pozwala na wygodne nadawanie uprawnień, dostępu do zasobów oraz automatyczne synchronizowanie profili.
  • Instytucjach rządowych – które operują na wielu poufnych danych i potrzebują jednolitego systemu zarządzania dostępami do różnych systemów oraz bezpiecznego przechowywania danych użytkowników.

Dzięki centralizacji danych, integracja LDAP umożliwia administratorom lepszą kontrolę nad systemami, a użytkownikom oferuje wygodę dzięki jednokrotnemu logowaniu (Single Sign-On, SSO) oraz większe bezpieczeństwo.

Schemat połączenia LDAP ze stroną na Drupalu, systemem intranetowym oraz portalem informacyjnym.


Jak przygotować Drupala do integracji z LDAP?

Aby skonfigurować taką integrację, będzie nam potrzebny tylko jeden moduł - Lightweight Directory Access Protocol (LDAP). Moduł ten oferuje kilka submodułów, takich jak:

  • Server Authentication,
  • Users,
  • Query,
  • Authorization.

Są one niezbędne do konfiguracji i synchronizacji danych z serwerem LDAP.

Podstrona projektu Lightweight Directory Access Protocol (LDAP) na stronie internetowej Drupal.org.


Ja już mam ten moduł zainstalowany, ale możesz zobaczyć, jak to wygląda na stronie z instalacją modułów:

Lista modułów w Drupalu związanych z LDAP, takich jak LDAP Authentication, LDAP SSO czy LDAP Users.


Instalacja i aktywacja modułów LDAP

  1. Zainstaluj moduł LDAP na stronie z modułami Drupala.
  2. Po instalacji aktywuj niezbędne submoduły, takie jak Authorization, Provider Query, Servers oraz Users, które są wymagane do pełnej funkcjonalności integracji.

Konfiguracja połączenia z serwerem LDAP

Przy konfiguracji serwera LDAP dla Drupala musisz wprowadzić kluczowe informacje, takie jak adres serwera, port, a także ustawienia szyfrowania. W przypadku JumpCloud oraz innych popularnych serwerów LDAP, te dane powinny być łatwodostępne.

Oprócz samej konfiguracji, aby było połączenie z tym serwerem, pokażę Ci jak zrobić integrację danych z serwera dla poszczególnych użytkowników i jak te dane wprowadzić do użytkownika w Drupalu.

Konfiguracja serwera LDAP w Drupalu

  1. Przejdź do zakładki “Configuration” > “People” > “LDAP”.
  2. Wybierz zakładkę “Servers” i skonfiguruj ustawienia serwera. W przypadku JumpCloud, musisz wprowadzić dane dotyczące portu oraz szyfrowania.
  3. Po wpisaniu danych serwera, możesz przetestować połączenie, aby upewnić się, że wszystkie informacje są prawidłowe. W tym celu przejdź do opcji “Test”. Tam możesz wybrać użytkownika, którego połączenie chcesz sprawdzić.
  4. Dalej przejdź do panelu zarządzania użytkownikami, uprawnieniami i ich danymi.

Konfiguracja serwera LDAP w Drupalu poprzez uzupełnianie danych dotyczących portu i szyfrowania.


Test na przykładzie użytkownika wyszedł pozytywnie. Na zielono widać FoundTestUser, czyli to połączenie jest dobre. Jak jest nawiązane z połączenie z serwerem LDAP, jest też szereg różnych danych, które będzie można później użyć w mapowaniu pól czy innych danych już w samym Drupalu.

Wyniki testu konfiguracji serwera LDAP w Drupalu - lista tokenów w systemie.


W tabeli z lewej strony widać token, który jest użyty, a obok jest podana wartość tego danego tokena:

Przykład tokena w systemie Drupal po konfiguracji z serwerem LDAP.


Synchronizacja danych użytkowników z serwera LDAP do Drupala

Przejdźmy do integracji Drupala z LDAP, która umożliwia automatyczne pobieranie danych użytkowników z serwera i przypisanie ich do odpowiednich pól w Drupalu. Proces ten można skonfigurować, mapując pola z serwera LDAP na pola w Drupalu.

Mamy działające połączenie i ustawione pola mapujące.

Mapowanie pól użytkowników

  1. Przejdź do konfiguracji LDAP w Drupalu: Aby rozpocząć, przejdź do zakładki “Configuration” > “People” > “LDAP”. W tym miejscu będziesz mieć dostęp do ustawień mapowania danych użytkowników.
  2. Wybierz zakładkę mapowania pól: W zakładce LDAP znajdziesz możliwość przypisania pól z serwera LDAP do pól użytkowników Drupala. W tym miejscu możesz zdefiniować, które pola z LDAP mają odpowiadać konkretnym polom użytkownika w Drupalu.
  3. Mapowanie podstawowych pól:
  • Zacznij od zdefiniowania podstawowych pól, takich jak username (nazwa użytkownika), email (adres e-mail) oraz picture (zdjęcie). Na przykład, możesz przypisać pole username z serwera LDAP do pola username w Drupalu, dzięki czemu po zalogowaniu użytkownika dane te będą automatycznie synchronizowane.
  • Dodatkowo, możesz skonfigurować synchronizację dla pól email i picture, jeśli są one dostępne w katalogu LDAP.

Mapowanie podstawowych pól w systemie dla uzyskania zgodności LDAP z Drupalem.


Logowanie do Drupala po integracji z LDAP

Po zakończeniu integracji Drupala z serwerem LDAP logowanie przebiega w prosty sposób, jeśli wszystkie dane serwera LDAP zostały poprawnie skonfigurowane i zmapowane. Przejdźmy więc do zalogowania się, po tym nasze pola mapujące będą uzupełnione. 

Logowanie do panelu administracyjnego Drupala po udanej integracji z serwerem LDAP.


Jak widać, zalogowałem się tutaj swoją nazwą użytkownika oraz hasłem. Widzimy tutaj title “Drupal Developer”. Jest to dana, która została pobrana właśnie z JumpCloud.

Wiemy, że integracja działa i będzie prawdopodobnie działać dla reszty użytkowników. Możemy więc zmapować inne pole. Przykładowo - sprawdźmy, jakie pola tutaj jeszcze istnieją w “użytkowniku” właśnie w tym katalogu LDAP. Idziemy więc do “details” i widzimy Employee Type - b2b. Załóżmy, że właśnie tą daną chcielibyśmy mieć mieć w swoim drupalowym użytkowniku.

Sprawdzanie dodatkowych pól w panelu serwera JumpCloud w katalogu LDAP do zmapowania w Drupalu.


W tym celu musimy stworzyć nowe pole w “użytkowniku”.

Dodawanie niestandardowych pól do użytkowników w Drupalu

Jeżeli dane w LDAP są bardziej rozbudowane i chcesz zaimportować dodatkowe informacje o użytkownikach, możesz dodać nowe pola w Drupalu i skonfigurować ich mapowanie z danymi z serwera LDAP.

Tworzenie nowych pól dla danych z LDAP

  1. Przejdź do “Configuration” > “People” > “Account settings” i wybierz “Manage fields”.

Dodawanie niestandardowych pól dla danych z LDAP w sekcji “Zarządzaj polami” w Drupalu.
 

  1. Dodaj nowe pole: “czysty tekst” i nazwij je: employee type. Kontynuując, zapisz zmiany.

Dodawanie pola “employee type” w Drupalu na potrzeby integracji z LDAP.


Tutaj widać, że pole jest stworzone:

Gotowe pole “employee type” w Drupalu dodane jako tekst (bez formatowania) w panelu administracyjnym.

 

  1. Przejdź do ustawień LDAP w Drupalu: Po utworzeniu nowego pola, przejdź do zakładki “Configuration” > “People” > “LDAP”.
  2. Mapowanie pola z LDAP: Wybierz sekcję “Servers” lub “Users”, gdzie można zarządzać mapowaniem pól. Znajdź opcję mapowania pól Drupala z odpowiadającymi im polami na serwerze LDAP.
  3. Wprowadź token z LDAP: Wprowadź token z serwera LDAP, który odpowiada nowemu polu, np. employee type. Tokeny można podglądać w zakładce testowania serwera LDAP.
  4. Zapisz ustawienia: Po przypisaniu tokena do nowego pola w Drupalu, zapisz zmiany.

Wprowadzanie tokena z serwera LDAP w Drupalu, który odpowiada nowemu polu “employee type”.


Testowanie synchronizacji i logowania użytkowników

Po zakończeniu konfiguracji możesz przetestować, czy integracja działa prawidłowo. Zaloguj się do Drupala za pomocą konta z JumpCloud lub innego serwera LDAP i sprawdź, czy wszystkie dane są prawidłowo zsynchronizowane.

Weryfikacja działania integracji

  1. Wyloguj się z Drupala i zaloguj się ponownie, używając danych użytkownika z LDAP.
  2. Sprawdź, czy pola użytkownika, takie jak username, email, job title oraz inne niestandardowe pola, zostały poprawnie zsynchronizowane.
  3. Jeśli wystąpią błędy w synchronizacji, upewnij się, że mapowanie pól i synchronizacja są prawidłowo ustawione.

Zarządzanie synchronizacją i aktualizacją danych

Podczas konfiguracji mapowania pól możesz zdecydować, kiedy dane mają być aktualizowane: podczas tworzenia nowego konta czy przy każdej synchronizacji. Daje to kontrolę nad procesem aktualizacji danych użytkowników w Drupalu.

Konfiguracja zdarzeń synchronizacji

  1. Wybierz odpowiednie opcje synchronizacji w ustawieniach LDAP, aby zapewnić, że dane będą aktualizowane za każdym razem, gdy użytkownik się zaloguje.

Konfiguracja zdarzeń synchronizacji w Drupalu z użyciem tokenów LDAP.

 

  1. Natomiast w przypadku nowych pól upewnij się, że są one przypisane do zdarzeń synchronizacji zarówno dla nowych kont, jak i istniejących użytkowników.

Po poprawnej synchronizacji i zalogowaniu się, powinniśmy widzieć wybrane pola.

Ekran z widokiem poprawnego logowania do panelu Drupala po udanej integracji z serwerem LDAP.


Synchronizacja i logowanie działa, także jak widać konfiguracja samego połączenia Drupala z serwerem, z katalogiem użytkowników opartych o protokół LDAP nie jest trudna.

Jedyne, czego wymaga, to tak naprawdę posiadania serwera LDAP i właściwej konfiguracji, co może być najdłuższym procesem w tworzeniu tej integracji.

Integrowanie Drupala z LDAP - podsumowanie

Integracja Drupala z serwerem LDAP, takim jak JumpCloud, umożliwia skuteczne zarządzanie danymi użytkowników w jednej centralnej lokalizacji. Dzięki mapowaniu pól i automatycznej synchronizacji, administratorzy mogą uprościć proces logowania i zarządzania danymi użytkowników, oszczędzając czas i zmniejszając ryzyko błędów. Proces konfiguracji LDAP w Drupalu jest stosunkowo prosty, a jego elastyczność pozwala na dostosowanie do różnych systemów LDAP.

Dzięki integracji z LDAP Drupal staje się potężnym narzędziem do zarządzania użytkownikami, co jest szczególnie przydatne w dużych organizacjach oraz portalach z wieloma redaktorami. Zachęcamy do  wcielenia w życie powyższych kroków, aby usprawnić zarządzanie użytkownikami i zwiększyć efektywność administracji w Drupalu. A jeśli napotkasz jakiekolwiek problemy lub zwyczajnie będziesz potrzebować porady, nasi eksperci z agencji Drupala chętnie Ci pomogą.

***

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.

-