Naciśnij ESC, aby zamknąć

Authentik: Konfiguracja Single Sign-On dla Synology DSM

Spis treści

Cześć!

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

Ikona: Synology DSMCzym jest Synology DSM?

Synology DiskStation Manager to system operacyjny stworzony przez firmę Synology Inc. Specjalnie zaprojektowany do pracy na ich serwerach NAS. DSM oferuje intuicyjne i zintegrowane środowisko do zarządzania danymi, udostępniania plików, tworzenia kopii zapasowych, a także obsługi różnorodnych aplikacji.

 

Czym jest Authentik?

Authentik to również narzędzie typu open-source, pełniące funkcję dostawcy tożsamości (Identity Provider). Podobne usługi komercyjne, takie jak Okta czy One Login, działają już na rynku. Jeśli natomiast chodzi o podobne narzędzia open-source, można wymienić takie jak Keycloak czy Authelia.

Przygotowanie

W celu przygotowania poradnika, przyjmiemy nazwy domen oraz identyfikatory opisane poniżej. W trakcie konfiguracji, dostosuj ustawienia zgodnie z własnymi potrzebami.

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

Wstęp do poradnika

Nowy system – nowe funkcjonalności

Synology, wprowadzając wersję DSM 7.0 swojego systemu DiskStation Manager, otworzyło nowe możliwości logowania za pośrednictwem dostawców tożsamości, korzystając z protokołu OpenID Connect. Pierwotnie, funkcja ta była dostępna jedynie dla logowania jednokrotnego poprzez Azure Active Directory od Microsoftu lub IBM WebSphere Application Server. Dodatkowo, pełne wykorzystanie funkcji jednokrotnego logowania wymagało, aby serwer dostawcy tożsamości był połączony z Synology za pomocą LDAP lub Active Directory.

Wraz z wersją DSM 7.2, Synology wprowadziło cztery protokoły jednokrotnego logowania: OpenID Connect, SAML, CAS oraz autorski Synology SSO. Co więcej, dane użytkowników nie muszą już być pobierane z LDAP/AD – teraz są identyfikowane lokalnie.

Poniższy poradnik będzie skupiał się na implementacji Single Sign-On z wykorzystaniem OpenID Connect oraz lokalnych użytkowników.

A co z urządzeniami opartymi o system DSM 7.1?

Wielu użytkowników może nadal korzystać z systemu opartego na DSM 7.1 z uwagi na wiek swojego urządzenia, które nie otrzyma już aktualizacji do DSM 7.2. W przypadku dostawcy tożsamości Authentik, połączenie poprzez OpenID Connect + LDAP jest obecnie niemożliwe, jak wynika z informacji dostępnych na dzień pisania artykułu. Na platformie Github można znaleźć otwarte zgłoszenia problemów dotyczące trudności w łączeniu Authentik z urządzeniem Synology przy użyciu protokołu LDAP.

W najbliższej przyszłości planuję przygotować dwa artykuły, w których przedstawię sposoby obejścia tego problemu, opierając się na dwóch scenariuszach. Pierwszy z nich obejmuje istniejące już urządzenie Synology w naszym domowym laboratorium z zainstalowanym DSM 7.2, natomiast drugi sugeruje wykorzystanie aplikacji SSO Server od Synology.

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 – Skonfigurowanie Nginx Proxy Managera w Portainerze

Zanim przystąpisz do implementacji Single Sign-On na Synology z Authentik, upewnij się, że Twój Nginx Proxy Manager jest skonfigurowany. Nie wiesz, jak to zrobić? Spokojnie! W moim najnowszym artykule znajdziesz szybką instrukcję, jak to zrobić krok po kroku przy użyciu Docker Compose w Portainerze.

👉 Sprawdź krok 1 teraz i przygotuj swoje środowisko do kolejnych wzmocnień!

Krok 2 – Skonfigurowanie Single Sign-On w Portainerze

Czy już wiesz, jak sprawić, by logowanie do Portainera było jednoczesne i bezproblemowe dzięki Single Sign-On? Jeśli nie, to czas to zmienić! W moim najnowszym poradniku krok po kroku dowiesz się, jak skonfigurować SSO z wykorzystaniem Authentik i Portainera.

👉 Odwiedź krok 2 teraz i zyskaj łatwiejszy dostęp do swojego środowiska Docker!

Krok 3 – Konfiguracja w Authentik

  • Zaloguj się na swoje konto i przejdź do interfejsu administracyjnego,
  • Po pomyślnym zalogowaniu się do interfejsu administracyjnego, 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. Następnie przejdź dalej, klikając Next.
  • Wypełnij providera następującymi wartościami:
    • Name: dsm-oidc
    • 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://dsm.xyz.com/#/signin
    • Signing Key: authentik Self-signed Certificate
  • Pozostaw pozostałe wartości bez zmian i kliknij Finish.
  • Po lewej stronie ekranu wybierz Applications, a następnie ponownie Applications.
  • Kliknij Create I wypełnij aplikację następującymi wartościami:
    • Name: Synology DSM
    • Slug: synology-dsm
    • Provider: dsm-oidc
    • UI Settings możesz, ale nie musisz uzupełniać.
      • Icon: pobierz ikonę Synology DSM z Internetu i wgraj.
      • Publisher: Synology Inc.
      • Description: NAS
    • Zatwierdzamy utworzenie aplikacji przyciskiem Create.

Po stronie dostawcy tożsamości zakończyliśmy już niezbędne kroki. Teraz przyszedł czas na konfigurację systemu operacyjnego od Synology.

Krok 4 – Konfiguracja w Synology DSM

  • Zaloguj się do swojego Synology za pomocą konta administratora,
  • Przejdź do Panelu Sterowania, a nastepnie z sekcji System wybierz Domena/LDAP,
  • Przejdź do zakładki Klient SSO i ustaw następujące parametry opisane poniżej:
    • Ustawienia logowania: Zaznacz jako aktywne Wybierz SSO jako opcję domyślną na stronie logowania,
    • Usługi: Zaznacz jako aktywne Włącz usługę OpenID Connect SSO,
    • Przejdź do Ustawienia logowania jednokrotnego OpenID Connect SSO, następnie po otwarciu okna ustawienia OIDC uzupełnij następującymi parametrami formularz:
      • Profil: OIDC
      • Typ konta: Domena/LDAP/lokalnie
      • Nazwa: Authentik
      • Well-known URL: https://auth.xyz.com/application/o/dsm-oidc/.well-known/openid-configuration
      • Application ID: Wklej skopiowany wcześniej Client ID z Authentika
      • Klucz tajny aplikacji: Wklej skopiowany wcześniej Client Secret z Authentika
      • Adres URI przekierowania: https://dsm.xyz.com/#/signin
      • Zakres uprawnień: email openid profile
      • Roszczenie dotyczące nazwy użytkownika: preferred_username

Synology, Panel Sterowania OpenID

    • Zapisz ustawienia przyciskiem zlokalizowanym w prawym dolnym rogu na niebieskim tle.
  • Po zastosowaniu zmian zaloguj się ponownie do DSMa, korzystając już z jednokrotnego logowania protokołem OpenID Connect.
  • Synology, Ekran logowania

Tworzenie użytkownika

Tworzenie użytkownika w celu skorzystania z OpenID Connect na platformie Synology DSM wymaga ręcznego utworzenia konta użytkownika na serwerze NAS. Ta procedura może być uznawana za nieco niesatysfakcjonującą, biorąc pod uwagę, że jest to krok w przeciwnym kierunku w stosunku do idei ułatwiającej technologii jednokrotnego logowania. Na dzień pisania tego artykułu, należy zauważyć, że Synology nie planuje rozbudowy tej formy uwierzytelniania.

Wykorzystanie OIDC dla innych aplikacji od Synology

Aktualnie, korzystanie z OpenID Connect w kontekście jednokrotnego logowania obejmuje jedynie dostęp do systemu DSM na urządzeniu Synology. Niestety, nie jest możliwe zastosowanie tych samych danych uwierzytelniających od dostawcy tożsamości do logowania się w aplikacjach typu Synology Drive czy w sieci lokalnej poprzez protokół SMB. Ponadto, RADIUS Server również nie obsługuje uwierzytelniania na podstawie danych pochodzących od Authentik.

Aby uzyskać dostęp do wspomnianych aplikacji, konieczne jest skorzystanie z hasła lokalnego użytkownika, co niestety koliduje z ideą jednokrotnego logowania.

Podsumowując, obecnie jednokrotne logowanie przy użyciu systemu dostawcy tożsamości umożliwia jedynie dostęp przez przeglądarkę do usług zainstalowanych na platformie Synology DSM.

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.