Naciśnij ESC, aby zamknąć

Authentik: Konfiguracja Single Sign-On dla Portainer

Cześć!

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

Czym jest Portainer?

Portainer to otwarte narzędzie służące do zarządzania i monitorowania kontenerami w środowisku Docker. Jest to graficzny interfejs użytkownika (GUI), który ułatwia konfigurację, zarządzanie i monitorowanie kontenerów, jak również innych zasobów związanych z Dockerem.

 

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 stworzenia tego przewodnika, przyjmiemy nazwy domen oraz identyfikatory opisane poniżej. W trakcie konfiguracji, dostosuj ustawienia zgodnie z własnymi potrzebami.

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

Krok 1 – Konfiguracja w Authentik

  1. Zaloguj się na swoje konto i przejdź do interfejsu administracyjnego,
  2. Po pomyślnym zalogowaniu się do interfejsu administracyjnego, przejdź po lewej stronie ekranu do zakładki Applications, a następnie wybierz Providers.Authentik
  3. Kliknij przycisk Create i wybierz rodzaj providera OAuth2/OpenID Provider. Następnie przejdź dalej, klikając Next.
  4. Wypełnij providera następującymi wartościami:
    1. Name: portainer-prod
    2. Authentication flow: Wybierz swój skonfigurowany lub ustaw domyślny (default-authentication-flow)
    3. 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).
    4. Protocol settings:
      1. Client type: Zostawiamy Confidential
      2. Client ID: Skopiuj i zachowaj na później
      3. Client Secret: Skopiuj i zachowaj na później
      4. Redirect URIs/Origins (RegEx): https://portainer.xyz.com
  5. Pozostaw pozostałe wartości bez zmian i kliknij Finish.
  6. Po lewej stronie ekranu wybierz Applications, a następnie ponownie Applications.
  7. Kliknij Create I wypełnij aplikację następującymi wartościami:
    1. Name: Portainer
    2. Slug: portainer
    3. Provider: portainer-prod
    4. UI Settings możesz, ale nie musisz uzupełniać.
      1. Icon: pobierz ikonę Portainera z Internetu i wgraj.
      2. Publisher: Portainer.io
      3. Description: Alias naszego serwera np. nas03.
    5. Zatwierdzamy utworzenie aplikacji przyciskiem Create.

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

Krok 2 – Konfiguracja w Portainer

W Portainerze identyfikatorem użytkownika (loginem) będzie nasz adres e-mailowy z Authentika.

  1. Zaloguj się do aplikacji za pomocą utworzonego wcześniej przez Ciebie lokalnego konta administratora.
  2. Po zalogowaniu się do interfejsu administracyjnego, przejdź po lewej stronie ekranu do zakładki Settings, a następnie Authentication.Konfiguracja
  3. Authentication metod zmień z Internal na OAuth.
  4. W sekcji Single Sign-On zaznacz opcję Use SSO.
  5. W sekcji Automatic user provisioning zaznacz opcję o tej samej nazwie. Default team pozostaw bez definiowania.
  6. W sekcji Provider zaznaczona będzie jedyna opcja Custom (w wersji Business Edition providerzy Microsoft, Google lub Github są dostępni do wyboru).
  7. Sekcję OAuth Configuration wypełnij następującymi wartościami:
    1. Client ID: Wklej skopiowany wcześniej Client ID z Authentika.
    2. Client secret: Wklej skopiowany wcześniej Client Secret z Authentika.
    3. Authorization URL: https://auth.xyz.com/application/o/authorize/
    4. Access token URL: https://auth.xyz.com/application/o/token/
    5. Resource URL: https://auth.xyz.com/application/o/userinfo/
    6. Redirect URL: https://portainer.xyz.com
    7. Logout URL: https://auth.xyz.com/if/session-end/portainer/
    8. User identifier: email
    9. Scopes: email openid profile
  8. Zachowaj dokonane ustawienia, klikając przycisk Save Settings.
  9. W osobnej przeglądarce zaloguj się do Portainera za pomocą SSO Authentika. Zostanie utworzone dla Ciebie konto zwykłego użytkownika. Teraz potrzebujemy przypisać nowemu użytkownikowi rolę administratora. Będąc zalogowanym na koncie lokalnym z uprawnieniami administratora, przejdź do ustawień po lewej stronie, wybierz zakładkę Users, a następnie z listy użytkowników wybierz nowo utworzone konto z kolumny Name.
  10. Zaznacz opcję Administrator i kliknij Save.Konfiguracja
  11. Done! Miłego użytkowania! 🚀

Dodatkowe informacje

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.