
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
- 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.
- 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: portainer-prod
- 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://portainer.xyz.com
- 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: Portainer
- Slug: portainer
- Provider: portainer-prod
- UI Settings możesz, ale nie musisz uzupełniać.
- Icon: pobierz ikonę Portainera z Internetu i wgraj.
- Publisher: Portainer.io
- Description: Alias naszego serwera np. nas03.
- 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.
- Zaloguj się do aplikacji za pomocą utworzonego wcześniej przez Ciebie lokalnego konta administratora.
- Po zalogowaniu się do interfejsu administracyjnego, przejdź po lewej stronie ekranu do zakładki Settings, a następnie Authentication.
- Authentication metod zmień z Internal na OAuth.
- W sekcji Single Sign-On zaznacz opcję Use SSO.
- W sekcji Automatic user provisioning zaznacz opcję o tej samej nazwie. Default team pozostaw bez definiowania.
- W sekcji Provider zaznaczona będzie jedyna opcja Custom (w wersji Business Edition providerzy Microsoft, Google lub Github są dostępni do wyboru).
- Sekcję OAuth Configuration wypełnij następującymi wartościami:
- Client ID: Wklej skopiowany wcześniej Client ID z Authentika.
- Client secret: Wklej skopiowany wcześniej Client Secret z Authentika.
- Authorization URL: https://auth.xyz.com/application/o/authorize/
- Access token URL: https://auth.xyz.com/application/o/token/
- Resource URL: https://auth.xyz.com/application/o/userinfo/
- Redirect URL: https://portainer.xyz.com
- Logout URL: https://auth.xyz.com/if/session-end/portainer/
- User identifier: email
- Scopes: email openid profile
- Zachowaj dokonane ustawienia, klikając przycisk Save Settings.
- 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.
- Zaznacz opcję Administrator i kliknij Save.
- Done! Miłego użytkowania! 🚀
Dodatkowe informacje
- Portainer: https://docs.portainer.io/admin/settings/authentication/oauth
- Authentik – Applications: https://goauthentik.io/docs/applications/
- Authentik – OAuth2: https://goauthentik.io/docs/providers/oauth2/
Dodaj komentarz