Przepływy uwierzytelniania Spotnana – przegląd
SPIS TREŚCI
Spotnana udostępnia różne metody uwierzytelniania, które pozwalają partnerom bezpiecznie zintegrować się z naszą platformą. W tej dokumentacji znajdą Państwo przegląd wszystkich obecnie obsługiwanych przez Spotnana sposobów uwierzytelniania wraz ze szczegółowym opisem ich działania. Przedstawione tu przepływy pokazują, jak Spotnana uwierzytelnia i autoryzuje użytkowników, aby mogli uzyskać dostęp do chronionych zasobów organizacji (czyli zasobów należących do firmy użytkownika na platformie Spotnana).
Główne elementy
Zanim rozpoczną Państwo pracę, prosimy zapoznać się z poniższą listą najważniejszych komponentów systemu, do których odwołujemy się w tej dokumentacji.
- Interfejs użytkownika Spotnana (Spotnana UI)(Spotnana User Interface) Dotyczy webowej aplikacji frontendowej Spotnana (czyli narzędzia do rezerwacji online) lub aplikacji mobilnej Spotnana. W szczególności chodzi o stronę logowania, która uruchamia proces uwierzytelniania po zalogowaniu się lub utworzeniu nowego konta przez użytkownika.
- Serwer Spotnana Odnosi się do backendowego serwera Spotnana, który służy do uwierzytelniania (np. autoryzacji dostępu użytkownika do zasobu oraz bezpiecznego przechowywania i przetwarzania jego danych).
- Interfejs użytkownika partnera (Partner UI) (Partner's User Interface) Interfejs użytkownika (czyli aplikacja frontendowa), z którego partnerzy korzystają, aby uzyskać dostęp do platformy Spotnana. Przykładowo, w przypadku uwierzytelniania przez iFrame, platforma Spotnana jest osadzona w interfejsie partnera i użytkownicy korzystają z niej właśnie przez ten interfejs.
- Serwer partnera Odnosi się do jednego lub kilku serwerów backendowych partnera, które służą do integracji z platformą Spotnana.
- Spotnana IdP (Spotnana Identity Provider) Wewnętrzna usługa Spotnana, która odpowiada za zarządzanie tożsamością użytkowników i autoryzację.
- IdP partnera Zewnętrzni dostawcy tożsamości (IdP) wykorzystywani przez partnerów. Przykładami takich dostawców są Google czy Azure.
- OBT Narzędzie do rezerwacji online Spotnana (OBT), dostępne pod adresem https://app.spotnana.com/
- Token użytkownika (subject token) W przypadku uwierzytelniania przez iFrame (lub wymianę tokenów), token użytkownika identyfikuje daną osobę. Na jego podstawie pobierane są informacje o użytkowniku i przyznawany dostęp do platformy Spotnana.
- Token dostępu (access token) Uprawnienie (OAuth), które aplikacja partnera wykorzystuje do uzyskania dostępu do chronionych zasobów w imieniu użytkownika. Jest to tymczasowy klucz autoryzacyjny, pozwalający na wykonywanie zapytań do API bez ujawniania danych logowania użytkownika.
- Token odświeżania (refresh token) Długoterminowe uprawnienie, które pozwala uzyskać nowy token dostępu bez konieczności ponownego logowania się użytkownika. Zazwyczaj jest wydawany razem z tokenem dostępu podczas pierwszego logowania.
- Dane klienta (client credentials) Dane przekazywane użytkownikom, którzy łączą się bezpośrednio z API Spotnana (czyli unikalny
clientId
orazclientSecret
). - PID (identyfikator osobisty) Unikalny identyfikator przypisany użytkownikowi. PID służy do pobierania informacji o użytkowniku z serwera Spotnana.
orgId
Unikalny identyfikator organizacji użytkownika nadawany przez Spotnana.tmcId
Unikalny identyfikator przypisany przez Spotnana dla firmy zarządzającej podróżami (TMC – Travel Management Company).
Obsługiwane metody uwierzytelniania
Poniżej przedstawiamy metody uwierzytelniania obsługiwane przez Spotnana:
- Uwierzytelnianie hasłem
- Uwierzytelnianie przez IdP
- Uwierzytelnianie przez API
- Uwierzytelnianie przez iFrame
- Uwierzytelnianie na podstawie kodu autoryzacyjnego
- Uwierzytelnianie typu maszyna-maszyna (M2M)
Uwierzytelnianie hasłem
W przypadku uwierzytelniania hasłem, interfejs Spotnana (czyli strona logowania lub rejestracji w OBT) inicjuje i obsługuje proces uwierzytelniania z serwerami backendowymi Spotnana. W zależności od tego, czy użytkownik loguje się na istniejące konto, czy zakłada nowe, proces ten przebiega nieco inaczej. Oba te scenariusze zostały szczegółowo opisane poniżej wraz ze schematami.
Użytkownik istniejący
Poniższy diagram oraz opisane kroki pokazują, jak interfejs Spotnana współpracuje z usługami backendowymi podczas uwierzytelniania istniejącego użytkownika.
Rys.: Diagram sekwencji ilustrujący uwierzytelnianie hasłem dla istniejących użytkowników.
Krok | Przebieg |
---|---|
Użytkownik, który już posiada konto, loguje się przez OBT lub aplikację mobilną Spotnana, podając swój adres e-mail. | |
1 |
|
2 |
|
3 |
|
Nowy użytkownik
Poniższy diagram oraz opisane kroki pokazują, jak interfejs Spotnana współpracuje z usługami backendowymi podczas uwierzytelniania nowego użytkownika (lub użytkownika, który chce zresetować hasło).
Rys.: Diagram sekwencji ilustrujący uwierzytelnianie hasłem dla nowych użytkowników.
Krok | Przebieg |
---|---|
Nowy użytkownik wpisuje swój adres e-mail na stronie logowania OBT Spotnana i klika Dalej. | |
1 |
|
1 a | Użytkownik ustawia nowe hasło i klika Dalej. |
2 |
|
3 |
|
4 |
|
Uwierzytelnianie przez IdP
Spotnana umożliwia uwierzytelnianie przez IdP, takie jak Google, Azure oraz dostawców własnych, korzystających z OpenID Connect lub SAML. Poniżej opisano przebieg uwierzytelniania przez IdP na diagramie i w krokach.
Rys.: Diagram sekwencji ilustrujący przebieg uwierzytelniania przez IdP.
Krok | Przebieg |
---|---|
Użytkownik loguje się przez OBT lub aplikację mobilną Spotnana, podając swój adres e-mail. | |
1 |
|
2 | Interfejs Spotnana przekierowuje żądanie do Spotnana IdP. |
3 | Spotnana IdP przekierowuje żądanie do IdP partnera. W ten sposób rozpoczyna się proces uwierzytelniania przez IdP. Uwaga: Przy każdym przekierowaniu zwracany jest kod statusu 302, co oznacza przekierowanie na inny adres URL. |
4 | Nawiązywane jest połączenie pomiędzy Spotnana IdP a IdP partnera, aby potwierdzić uwierzytelnienie użytkownika przez IdP partnera. Uwaga: W trakcie tego połączenia Spotnana IdP przesyła |
5 | IdP partnera pomyślnie uwierzytelnia użytkownika. Uwaga: Po tym kroku profil użytkownika musi zostać jeszcze zweryfikowany przez token bearer. |
5 a | Po pomyślnym uwierzytelnieniu odpowiedź z IdP partnera trafia do Spotnana IdP. |
5 b | Spotnana IdP generuje unikalny kod dla profilu użytkownika i przekazuje go do interfejsu Spotnana. |
6 |
Uwaga: Pomyślne utworzenie tokenu bearer oznacza, że użytkownik został uwierzytelniony i może korzystać z platformy Spotnana. |
7 |
|
Uwierzytelnianie przez API
Partnerzy korzystający z API Spotnana mogą użyć naszego endpointu uwierzytelniającego, aby wygenerować token bearer dla swoich użytkowników. Poniższy diagram pokazuje, jak wygląda ten proces krok po kroku.
Rys.: Diagram sekwencji ilustrujący uwierzytelnianie przez API.
Krok | Przebieg |
---|---|
1 | Użytkownik API wykonuje wywołanie POST do endpointu Poniżej znajduje się przykładowe wywołanie cUrl, z którego można skorzystać przy wywołaniu endpointu curl -i -X POST \ https://api.spotnana.com/get-auth-token \ -H 'Content-Type: application/json' \ -d '{ "clientId": "sample-apiuser@tmcorg.com", "clientSecret": "<password>" }' Uwaga: Wartości |
2 |
|
Gdy użytkownik API otrzyma token bearer, każde kolejne zapytanie do API Spotnana (np. Trip APIs) musi zawierać token bearer w nagłówku autoryzacyjnym.
Uwaga: Endpoint get-auth-token(clientId, clientSecret)
jest ograniczony do 100 wywołań API na 5 minut.
Uwierzytelnianie przez iFrame
iFrame lub rozwiązanie osadzone polega na tym, że partnerzy umieszczają interfejs Spotnana w swoim własnym interfejsie, dzięki czemu użytkownicy korzystają z platformy Spotnana przez UI partnera. W tym przypadku uwierzytelnianie użytkownika opiera się na wymianie tokenów pomiędzy systemami partnera i Spotnana.
Uwaga: W przypadku uwierzytelniania przez iFrame użytkownik logujący się będzie nazywany caller. Pozwala to obsłużyć sytuacje, w których użytkownik API/maszyny loguje się i żąda tokenu dostępu dla innej osoby. Taki użytkownik API/maszyny może użyć danych administratora TMC (Travel Management Company), aby połączyć się bezpośrednio z serwerem Spotnana. Dlatego będziemy używać określenia caller jako ogólnego terminu, który może oznaczać zarówno użytkownika logującego się na własny profil, jak i użytkownika API/maszyny żądającego tokenu dostępu dla innej osoby.
Poniższy diagram sekwencji pokazuje, jak przebiega uwierzytelnianie przez wymianę tokenów pomiędzy serwerami Spotnana i partnera.
Rys.: Diagram sekwencji ilustrujący uwierzytelnianie przez iFrame z użyciem wymiany tokenów.
Krok | Przebieg |
---|---|
Caller loguje się przez interfejs partnera (Partner UI). | |
1 | Partner UI wyświetla interfejs Spotnana za pomocą iFrame. |
2 | Interfejs Spotnana wysyła do Partner UI żądanie przez post message w celu pobrania tokenów. W żądaniu ustawiony jest parametr type=TOKEN_EXCHANGE_REQUEST . |
3 | Partner UI wysyła zapytanie API do serwera partnera, aby pobrać token OAuth, co inicjuje kolejne kroki procesu uwierzytelniania. |
3 a | Serwer partnera wywołuje serwer Spotnana, przekazując dane użytkownika i token użytkownika (subject token). Serwer Spotnana sprawdza, czy żądanie pochodzi od użytkownika API/maszyny. |
3 b |
|
3 c |
|
4 | Partner UI przekazuje token do interfejsu Spotnana przez post message z parametrem |
5 |
Uwaga: Pomyślne utworzenie tokenu bearer oznacza, że użytkownik został uwierzytelniony i może korzystać z platformy Spotnana. |
6 |
|
Uwierzytelnianie na podstawie kodu autoryzacyjnego
Poniższy diagram sekwencji pokazuje, jak przebiega uwierzytelnianie z użyciem kodu autoryzacyjnego.
Rys.: Diagram sekwencji ilustrujący uwierzytelnianie na podstawie kodu autoryzacyjnego.
Krok | Przebieg |
---|---|
1 | Partner UI wywołuje serwer partnera, aby pobrać kod autoryzacyjny dla caller logującego się. Kod autoryzacyjny jest pobierany i przekazywany do Partner UI. |
2 | Partner UI wysyła żądanie do interfejsu Spotnana z wykorzystaniem niestandardowego adresu przekierowania, zawierającego |
3 | Interfejs Spotnana wykonuje wywołanie API typu POST do serwera Spotnana, korzystając z endpointu |
3 a |
|
3 b | Serwer Spotnana generuje token dostępu oraz token odświeżania i przekazuje je do interfejsu Spotnana. |
4 |
Uwaga: Pomyślne utworzenie tokenu bearer oznacza, że użytkownik został uwierzytelniony i może korzystać z platformy Spotnana. |
5 |
|
Uwaga: Tego typu uwierzytelniania nie można stosować w przypadku, gdy administrator TMC umożliwia logowanie kilku użytkownikom na ten sam adres e-mail.
Uwierzytelnianie typu maszyna-maszyna (M2M)
Metoda uwierzytelniania M2M sprawdzi się, gdy aplikacja kliencka musi uzyskać dostęp do zewnętrznego adresu callback w celu wygenerowania accessToken
dla użytkownika. Poniższy diagram sekwencji ilustruje przebieg uwierzytelniania M2M.
Rys.: Diagram sekwencji ilustrujący przebieg uwierzytelniania M2M.
Krok | Przebieg |
---|---|
Klucze publiczne wszystkich aplikacji biorących udział w uwierzytelnianiu są synchronizowane pomiędzy serwerem Spotnana a Spotnana IdP. Będą one później wykorzystywane do weryfikacji tokenu dostępu podczas uwierzytelniania. | |
1 | Serwer partnera wysyła żądanie API do |
2 |
|
3 |
|
Czy ten artykuł był pomocny?
To wspaniale!
Dziękujemy za opinię
Przepraszamy, że nie udało nam się pomóc!
Dziękujemy za opinię
Wysłano opinię
Doceniamy Twój wysiłek i postaramy się naprawić artykuł