
Cześć!
Dzisiaj przedstawię Ci kroki konfiguracji usługi jednokrotnego logowania (SSO) pomiędzy serwerem Traccarem, a Authentik.
Czym jest Traccar?
Traccar to narzędzie typu open-source do śledzenia pojazdów, umożliwiająca monitorowanie i zarządzanie flotą. Działa na zasadzie serwera GPS, zbierając dane z urządzeń GPS oraz innych sensorów, a następnie prezentuje te informacje w webowym interfejsie. Traccar pozwala śledzić lokalizację pojazdów w czasie rzeczywistym, analizować historię tras, monitorować zużycie paliwa i inne parametry.
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, przyjęliśmy już wcześniej ustaloną nazwę domeny oraz określone nazwy konfiguracyjne, przedstawione poniżej. Dla dostosowania konfiguracji do własnych potrzeb, należy dostosować ustawienia według indywidualnych wymagań.
- Pełna nazwa domeny (FQDN) Traccar: https://traccar.xyz.com
- Pełna nazwa domeny (FQDN) Authentik: https://auth.xyz.com
Krok 1 – Skonfigurowanie serwera poprzez Docker Compose w Portainerze
Czy posiadasz już skonfigurowany serwer na swoim urządzeniu Synology? Jeśli nie, przeczytaj ten artykuł w celu przygotowania serwera, a następnie wróć tutaj, aby kontynuować dalszą konfigurację.
Krok 2 – Konfiguracja komunikacji z trackerem GPS
Czy masz już przekierowane porty na swoim routerze i skonfigurowany tracker GPS do przesyłania informacji do serwera Traccar? Jeśli nie, przeczytaj ten artykuł dotyczący dostosowania serwera, a następnie wróć tutaj, aby kontynuować konfigurację.
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.
- 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: traccar-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://traccar.xyz.com/api/session/openid/callback
- 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: Traccar
- Slug: traccar
- Provider: traccar-prod
- UI Settings możesz, ale nie musisz uzupełniać.
- Icon: pobierz ikonę Traccara z Internetu i wgraj.
- Publisher: Anton Tananaev
- Description: Open source GPS tracking server
- Zatwierdzamy utworzenie aplikacji przyciskiem Create.
Po stronie dostawcy tożsamości zakończyliśmy już niezbędne kroki. Teraz przyszedł czas na konfigurację Traccara.
Krok 4 – Wyłącz działanie serwera w Portainerze
Zanim przystąpisz do edycji pliku XML, wyłącz działanie kontenera serwera oraz bazy danych w Portainerze. Aby to zrobić:
- Zaloguj się na swoje konto i przejdź do interfejsu administracyjnego.
- Czy używasz systemu jednokrotnego logowania Authentik? Ułatw sobie proces logowania, integrując Portainera z Authentikiem za pomocą tej instrukcji.
- Przejdź do swojego środowiska (eng: Environments), gdzie będziesz dezaktywować kontenery utworzone w ramach Docker Compose. Następnie przejdź do Stacks i wybierz utworzony Stack o nazwie traccar.
- Zaznacz oba aktywne kontenery i kliknij Stop. Poczekaj chwilę, aż kontenery zostaną zatrzymane.
Zasada działania jednokrotnego logowania (Single Sign-On)
Traccar może uwierzytelniać użytkowników za pomocą zewnętrznego dostawcy tożsamości obsługującego protokół OpenID Connect.
Kierując się dokumentacją techniczną dostępną na oficjalnej stronie Traccar, odkrywamy szczegóły procesu uwierzytelniania przy użyciu jednokrotnego logowania przez protokół OpenID:
- Traccar przekierowuje użytkownika do dostawcy tożsamości
- Użytkownik, celem uwierzytelnia się u dostawcy tożsamości (w naszym przypadku będzie to Authentik);
- Dostawca tożsamości (Authentik) przekierowuje użytkownika do Traccar z kodem autoryzacyjnym;
- Traccar weryfikuje wywołanie zwrotne i żąda informacji o użytkowniku od dostawcy tożsamości;
- Jeśli znaleziono użytkownika z pasującym adresem e-mail, jest on uwierzytelniany. Jeśli nie, tworzony jest nowy użytkownik.
Krok 5 – Edycja pliku konfiguracyjnego w edytorze tekstu w Synology
Aby skonfigurować naszą komunikację przy użyciu protokołu OpenID Connect, konieczne jest dodanie poniższych wartości do pliku XML w folderze konfiguracyjnym aplikacji. Nasz serwer trackerów GPS znajduje się w Dockerze na Synology, więc do tego posłużymy się edytorem tekstu zainstalowanym na naszym serwerze plików.
- Zaloguj się na swoim serwerze plików i otwórz File Station
- Przejdź do folderu docker, a następnie zlokalizuj katalog naszego serwera trackerów GPS, który nosi nazwę traccar.
- W katalogu traccar, znajdującym się wewnątrz folderu docker, przejdź do podfolderu o nazwie config i zlokalizuj plik traccar.xml. Otwórz go edytorem tekstu zainstalowanym na Synology, klikając dwukrotnie lewym klawiszem myszki.
- Pomiędzy sekcją <properties> a </propetries> dodaj następujące parametry:
<entry key='openid.clientId'>Wklej skopiowany wcześniej Client ID z Authentika</entry>
<entry key='openid.clientSecret'>Wklej skopiowany wcześniej Client Secret z Authentika</entry>
<entry key='openid.issuerUrl'>https://auth.xyz.coml/application/o/traccar</entry>
<entry key='openid.authUrl'>https://auth.xyz.com/application/o/authorize</entry>
<entry key='openid.tokenUrl'>https://auth.xyz.com/application/o/token</entry>
<entry key='openid.userInfoUrl'>https://auth.xyz.com/application/o/userinfo</entry>
<entry key='openid.allowGroup'>user</entry>
<entry key='openid.adminGroup'>admin</entry>
Co oznaczają następujące parametry?
- openid.force – Wyłącza wewnętrzne (lokalne) uwierzytelnianie, tylko użytkownicy protokołem OpenID mogą się zalogować;
- W niniejszej instrukcji nie implementowałem tego do naszego kodu.
- openid.clientId – Unikalny identyfikator przypisany do każdej aplikacji zarejestrowanej u dostawcy tożsamości i jest wymagany do włączenia SSO (wymagane);
- openid.clientSecret – Unikalny sekretny identyfikator przypisany do każdej aplikacji zarejestrowanej u dostawcy tożsamości i jest wymagany do włączenia SSO (wymagane);
- openid.issuerUrl – Podstawowy adres URL dostawcy tożsamości;
- openid.authUrl – Punkt końcowy, do którego użytkownicy są przekierowywani podczas procesu logowania;
- openid.tokenUrl – Punkt końcowy dostarczający token do Traccar;
- openid.userInfoUrl – Punkt końcowy, który dostarcza informacje o użytkowniku do Traccar;
- openid.allowGroup – Grupa, do której dostęp do serwera GPS ma być ograniczony.
- openid.adminGroup – Grupa, której ma zostać przyznany dostęp administratora do serwera GPS.
- Zapisz edytowany plik
Krok 6 – Powrót do Portainera i uruchom kontenery
- Uruchom dezaktywowane kontenery z powrotem. Poczekaj chwilę, aż konfiguracja plików załaduje się poprawnie.
Krok 7 – Zaloguj się do serwera korzystając z konta w Authentik
- Gotowe! 🚀 Aby przetestować działanie, przejdź do strony internetowej naszego serwera i wybierz opcję Login with OpenID
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.
- Dokumentacja techniczna OpenID Connect na stronie autora: https://www.traccar.org/openid-sso/
Dodaj komentarz