Naciśnij ESC, aby zamknąć

Authentik: Konfiguracja Single Sign-On dla WordPress

Spis treści

Cześć!

Dzisiaj przedstawię Ci kroki konfiguracji usługi jednokrotnego logowania (SSO) pomiędzy serwerem WordPressem, a Authentik.

Wstęp

Czym jest WordPress?

Wordpress Logo Ikona - Darmowa grafika wektorowa na Pixabay - PixabayWordPress to jedna z najpopularniejszych platform do tworzenia stron internetowych i blogów. Jest to zaawansowany system zarządzania treścią (CMS), który umożliwia łatwe tworzenie, edytowanie i publikowanie różnego rodzaju treści online. WordPress ma intuicyjny interfejs oraz dużą społeczność użytkowników. Oferuje ogromną liczbę darmowych i płatnych motywów oraz wtyczek. Rozszerzają one funkcjonalność WordPressa. .

Społeczność WordPressa oferuje wsparcie, porady i zasoby. Jest popularnym wyborem zarówno dla małych blogów, jak i dużych witryn korporacyjnych, sklepów internetowych i portali. Jego otwarta natura i łatwość użytkowania sprawiają, że jest chętnie wykorzystywany do różnych celów internetowych.

 

Czym jest Authentik?

Authentik to otwarte oprogramowanie służące jako dostawca tożsamości (Identity Provider), umożliwiające zarządzanie uwierzytelnianiem i autoryzacją użytkowników. Jako alternatywa dla komercyjnych usług takich jak Okta czy One Login, Authentik oferuje podobne funkcjonalności w modelu open-source. Wśród innych narzędzi open-source o podobnym przeznaczeniu znajdują się Keycloak oraz Authelia, które również pozwalają na centralne zarządzanie tożsamością użytkowników w aplikacjach i usługach webowych.

Wyróżnia się elastycznością konfiguracji i szerokim wsparciem dla różnych protokołów uwierzytelniania, co czyni go doskonałym wyborem dla organizacji poszukujących zaawansowanego, ale dostępnego rozwiązania open-source do zarządzania tożsamością.

Przygotowanie

W celu przygotowania poradnika, przyjmijmy na początek nazwy domen oraz identyfikatory opisane poniżej. Pamiętaj jednak, że w trakcie konfiguracji należy dostosować ustawienia zgodnie z własnymi potrzebami.

  • Pełna nazwa domeny (FQDN) Authentik: https://auth.xyz.com
  • Pełna nazwa domeny (FQDN) WordPress: https://xyz.com

Z tymi założonymi wartościami możemy przejść do właściwej części poradnika. Oczywiście w razie potrzeby, wartości te powinny zostać zmienione na odpowiednie dla Twojej konfiguracji.

Czym jest OpenID Connect?

Protokół OpenID Connect (OIDC) jest warstwą uwierzytelniania opartą na protokole OAuth 2.0, który umożliwia bezpieczne uwierzytelnianie i zdobywanie informacji o tożsamości użytkownika w aplikacjach internetowych. Poniżej znajdują się kluczowe elementy, które opisują, jak działa OpenID Connect:

  • Uwierzytelnianie przez OAuth 2.0: OpenID Connect wykorzystuje protokół OAuth 2.0 jako podstawę do uwierzytelniania. OAuth 2.0 umożliwia aplikacjom dostęp do zasobów na rzecz użytkownika, a OpenID Connect rozszerza ten protokół o warstwę uwierzytelniania.
  • Wydawanie Tokenów: Po pomyślnym uwierzytelnieniu użytkownika dostaje się tokeny, które zawierają informacje o tożsamości. Są to zazwyczaj:
    • ID Token: Zawiera podstawowe informacje o użytkowniku, takie jak identyfikator, imię, nazwisko itp.
    • Access Token: Umożliwia dostęp do zasobów chronionych w imieniu użytkownika.
    • Refresh Token: Służy do odświeżania lub uzyskiwania nowych tokenów po upływie ważności.
  • JSON Web Tokens (JWT): Informacje przesyłane w tokenach są często zakodowane w formie JSON Web Tokens, co zapewnia ich zwięzłość i bezpieczeństwo.
  • End-User Authentication: OpenID Connect obsługuje różne metody uwierzytelniania użytkownika, takie jak logowanie za pomocą hasła, uwierzytelnianie wieloskładnikowe czy nawet zewnętrzne dostawcy tożsamości.
  • Informacje o Konfiguracji: Identyfikatory i informacje niezbędne do autoryzacji i otrzymywania tokenów są uzyskiwane z dokumentu konfiguracyjnego, który jest zazwyczaj dostępny pod stałym adresem URL.
  • Bezpieczeństwo przez TLS: Komunikacja między klientem a dostawcą tożsamości, a także między dostawcą a serwerem zasobów, powinna odbywać się poprzez bezpieczne połączenie TLS (HTTPS).

Podsumowując, OpenID Connect ułatwia bezpieczne i skuteczne uwierzytelnianie użytkowników w aplikacjach internetowych, umożliwiając jednocześnie zdobycie informacji o ich tożsamości za pomocą tokenów.

Działanie OpenID Connect

Proces działania protokołu OpenID Connect (OIDC) można podzielić na kilka kroków. Poniżej znajdziesz ogólny opis etapów zaangażowanych w ten proces:

  • Rozpoczęcie Autoryzacji (Authorization Request):
    • Użytkownik chce zalogować się do aplikacji, obsługującej OpenID Connect.
    • Aplikacja kieruje go do dostawcy tożsamości (IdP) z żądaniem autoryzacji.
    • Żądanie to zawiera zakresy (scopes) dostępu, które aplikacja chce uzyskać, oraz informacje o tym, jakie działania są wymagane po zakończeniu autoryzacji.
  • Uwierzytelnianie Użytkownika (Authentication):
    • Dostawca tożsamości autoryzuje użytkownika.
    • Jeśli użytkownik nie jest zalogowany, może być poproszony o podanie swoich danych uwierzytelniających.
  • Przekierowanie z Powrotem (Redirection Back):
    • Po pomyślnym uwierzytelnieniu użytkownika dostawca tożsamości przekierowuje go z powrotem do aplikacji, dostarczając jednocześnie kod autoryzacyjny.
  • Wymiana Kodu na Tokeny (Token Exchange):
    • Aplikacja przesyła otrzymany kod autoryzacyjny z powrotem do dostawcy tożsamości.
    • W zamian otrzymuje zestaw tokenów, takich jak ID Token, Access Token i ewentualnie Refresh Token.
  • Korzystanie z Tokenów (Access Resources):
    • Aplikacja używa otrzymanego Access Token do uzyskania dostępu do zasobów chronionych w imieniu użytkownika.
    • Dostęp do zasobów może być ograniczony zakresem dostępu określonym w tokenie.
  • Weryfikacja Tokenów (Token Verification):
    • Aplikacja weryfikuje poprawność otrzymanych tokenów, zwłaszcza ID Token, który zawiera informacje o tożsamości użytkownika.
    • Weryfikacja może obejmować sprawdzenie podpisu tokena, jego ważności i zgodności z żądaniami autoryzacji.
  • Odświeżanie Tokenów (Token Refresh):
    • W przypadku użycia Refresh Token, aplikacja może odświeżyć swoje tokeny bez konieczności ponownego uwierzytelniania użytkownika.

Krok 1 – Konfiguracja w Authentik

  • Na początku zaloguj się na swoje konto i przejdź do interfejsu administracyjnego Authentik.
  • Po pomyślnym zalogowaniu się przejdź po lewej stronie ekranu do zakładki Applications, a następnie wybierz Providers.

Authentik

  • Kliknij przycisk Create i wybierz rodzaj providera OAuth2/OpenID Provider. Kolejnym krokiem będzie kliknięcie Next, aby przejść dalej.
  • Wypełnij providera następującymi wartościami
    • Name: wordpress
    • Authentication flow: Wybierz swój skonfigurowany lub ustaw domyślny (default-authentication-flow)
    • Authorization flow: Wybierz swój skonfigurowany lub ustaw explicit lub implicit consent(Ustawienie to odnosi się do funkcji używanej podczas autoryzacji dla tej aplikacji – definiujemy, czy Authentik ma wyświetlać przycisk umożliwiający przejście do aplikacji po zalogowaniu, czy po prostu ma Cię przekierować bez pytania).
    • Protocol settings
      • Client type: Zostawiamy Confidential
      • Client ID: Skopiuj i zachowaj na później
      • Client Secret: Skopiuj i zachowaj na później
      • Redirect URIs/Origins (RegEx): https://xyz.com/openid-connect-authorize
    • Signing Key: authentik Self-signed Certificate
  • Pozostaw pozostałe wartości bez zmian i kliknij Finish.
  • Po lewej stronie ekranu wybierz Applications, a potem ponownie Applications.
  • Kliknij Create I wypełnij aplikację następującymi wartościami:
    • Name: WordPress
    • Slug: wordpress
    • Provider: wordpress
    • UI Settings możesz, ale nie musisz uzupełniać.
      • Icon: pobierz ikonę WordPress z Internetu i wgraj.
      • Publisher: np. WordPress.com
      • Description: np. Moja strona oparta o WordPress
  • Na koniec zatwierdź utworzenie aplikacji przyciskiem Create.

Po stronie dostawcy tożsamości zakończyliśmy już niezbędne kroki. Przyszedł czas na konfigurację w systemie WordPressa.

Krok 2 – Konfiguracja w WordPress

Instalacja pluginu

  • Po pierwsze, zaloguj się do panelu administracyjnego,
  • Warto zauważyć, że twój login konta administracyjnego w panelu administracyjnym powinien odnosić się do tego samego loginu, jaki masz w SSO Authentik,
  • Przejdź do sekcji Plugins, a potem z podręcznego menu wybierz opcję Add New Plugin,

Wordpress, Plugins menu

  • Wklej w pole wyszukiwania pluginów nazwę OpenID Connect Generic Client,

Wordpress, pole wyszukiwania pluginów

  • Następnie wybierz plugin stworzony przez autora daggerhart i zainstaluj go,

Wordpress, OpenID plugin

Konfiguracja pluginu

  • Po pomyślnej instalacji wtyczki, przejdź do sekcji Settings. Tam znajdziesz odniesienie do konfiguracji wtyczki OpenID Connect Client.

Wordpress, Settings OpenID Connect Client

  • Wypełnij pola następującymi wartościami
    • Client Settings
      • Login type: pozostaw OpenID Connect button on login form
      • Client ID: Wklej Client ID z Authentika
      • Client secret key: Wklej Client secret z Authentika
      • OpenID Scope: email profile openid
      • Login Endpoint URL: https://auth.xyz.com/application/o/authorize/
      • Userinfo Endpoint URL: https://auth.xyz.com/application/o/userinfo/
      • Token Validation Endpoint URL: https://auth.xyz.com/application/o/token/
      • End Session Endpoint URL: https://auth.xyz.com/application/o/wordpress/end-session/
      • ACR values: pozostaw puste
      • Identity Key: preferred_username
      • Disable SSL Verify: pozostaw odznaczone
      • HTTP Request Timeout: 5
      • Nickname Key: preferred_username
      • Email Formatting: {email}
      • Display Name Formatting: pozostaw puste
      • Identify with User Name: pozostaw puste
      • State time limit: pozostaw puste
      • Enable Refresh Token: pozostaw puste
    • WordPress User Settings
      • Link Existing Users: zaznacz
      • Create user if does not exist: zaznacz
      • Redirect Back to Origin Page: pozostaw puste
      • Redirect to the login screen when session is expired: pozostaw puste
    • Authorization Settings
      • Enforce Privacy: pozostaw puste
      • Alternate Redirect URI: zaznacz
    • Log Settings
      • Enable Logging: pozostaw puste
      • Log Limit: 1000
  • Zapisz ustawienia przyciskiem Save Changes.
  • Aby skorzystać z logowania jednokrotnego, należy najpierw przejść do panelu administracyjnego WordPress (wp-admin). Następnie wybierz opcję Login with OpenID Connect.

Wordpress, SSO OpenID

Jeśli masz dodatkowe pytania dotyczące konfiguracji, śmiało zostaw komentarz pod tym artykułem lub skontaktuj się ze mną bezpośrednio. Chętnie odpowiem na wszelkie wątpliwości i pomogę rozwiązać ewentualne problemy. Twoje pytania mogą pomóc w ulepszeniu tego poradnika dla innych użytkowników.

Dodatkowe źródła i Informacje

W celu dalszego zgłębienia tematu i uzyskania szczegółowych informacji, polecam sprawdzenie poniższych linków. Są one wartościowymi źródłami, które zostały wykorzystane podczas opracowywania tego poradnika:

Przeczytaj także

Filip Chochół

Filip Chochol runs two blogs: personal “chochol.io” and together with his girlfriend “Warsaw Travelers” about travel. He specializes in IT resource management and technical support, and has been active in the field of cyber security awareness for almost two years. A proponent of open-source technologies, he previously worked in the film and television industry in the camera division (2013-2021). After hours, he develops interests in smart homes and networking.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


This site uses Akismet to reduce spam. Learn how your comment data is processed.