Flux d'authentification Spotnana - Vue d'ensemble

Créé par Joseph T Roepcke, Modifié le  Ven, 3 Oct. à 7:57 H par  Joseph T Roepcke

Flux d'authentification Spotnana - Vue d'ensemble

TABLE DES MATIÈRES

Spotnana propose diverses méthodes d'authentification qui permettent aux partenaires d'assurer une intégration sécurisée avec notre plateforme. Cette documentation fournit un aperçu des différentes méthodes d'authentification actuellement prises en charge par Spotnana, ainsi que des explications détaillées de leurs flux de processus. Les différents flux d'authentification mentionnés ici démontrent comment Spotnana authentifie et autorise les utilisateurs à accéder aux ressources protégées au niveau de l'organisation (c'est-à-dire, les ressources appartenant à l'entreprise de l'utilisateur sur la plateforme Spotnana).


Composants clés

Avant de commencer, consultez cette liste pour connaître les définitions des composants essentiels du système auxquels il est fait référence dans cette documentation.

  • Interface utilisateur Spotnana(Spotnana User Interface) Désigne l'application web front-end de Spotnana (c'est-à-dire, l'outil de réservation en ligne) ou l'application mobile Spotnana. Plus précisément, il désigne la page de connexion, qui déclenche le flux d'authentification front-end lorsque l'utilisateur se connecte ou crée une nouvelle connexion.
  • Serveur Spotnana Désigne le serveur back-end de Spotnana utilisé à des fins d'authentification (par exemple, pour autoriser un utilisateur à accéder à une ressource et pour stocker et traiter les informations utilisateur en toute sécurité).
  • Interface utilisateur partenaire (Partner's User Interface) L'interface utilisateur (c'est-à-dire, l'application front-end) utilisée par les partenaires pour accéder à la plateforme Spotnana. Par exemple, dans l'authentification basée sur iFrame, la plateforme Spotnana est intégrée à l'interface utilisateur (UI) du partenaire et ses utilisateurs accèdent à Spotnana via l'interface utilisateur du partenaire.
  • Serveur partenaire Désigne un ou plusieurs serveurs back-end utilisés par nos partenaires pour s'intégrer à Spotnana.
  • IdP Spotnana (Spotnana Identity Provider) Désigne le service interne de Spotnana utilisé pour la gestion et l'autorisation des identités d'utilisateurs.
  • IdP Partenaire Fournisseurs d'identité (IdP) tiers utilisés par les partenaires. Google et Azure sont des IdP courants. 
  • OBT L'outil de réservation en ligne (OBT) de Spotnana, accessible à l'adresse https://app.spotnana.com/ 
  • Jeton sujet Dans l'authentification basée sur iFrame (ou échange de jetons), un jeton sujet représente l'identité de l'utilisateur. Ce jeton sera utilisé pour rechercher ses informations et l'autoriser à accéder à la plateforme Spotnana.
  • Jeton d'accès Une identification (OAuth) utilisée par une application partenaire pour accéder à des ressources protégées au nom d'un utilisateur. Il s'agit d'une clé d'autorisation temporaire, permettant aux applications d'effectuer des requêtes API sans exposer les identifiants de l'utilisateur.
  • Jeton de rafraîchissement Une identification de longue durée utilisée pour obtenir de nouveaux jetons d'accès sans obliger l'utilisateur à se réauthentifier. Elle est généralement émise avec le jeton d'accès lors de sa création pendant la première session de connexion.
  • Identifiants client Les informations fournies aux utilisateurs qui se connectent directement aux API Spotnana (c'est-à-dire, un clientId et un clientSecret uniques).
  • PID (Identifiant personnel) Un identifiant personnel créé pour l'utilisateur. Le PID récupère les informations de l'utilisateur auprès du serveur Spotnana.
  • orgId Un identifiant unique attribué par Spotnana à l'organisation de l'utilisateur.
  • tmcId Un identifiant unique attribué par Spotnana à une TMC (Travel Management Company).


Méthodes d'authentification prises en charge

Voici les différentes méthodes d'authentification prises en charge par Spotnana :


Authentification par mot de passe

Lors de l'utilisation de l'authentification par mot de passe, l'interface utilisateur Spotnana (c'est-à-dire, la page de connexion ou d'inscription dans l'OBT) initie et gère le processus d'authentification avec les serveurs back-end de Spotnana. Cette approche peut avoir deux flux différents, selon que l'utilisateur se connecte avec un profil existant ou crée un nouveau profil. Chacun de ces deux flux d'authentification est expliqué dans les sections ci-dessous à l'aide de diagrammes de séquence.


Utilisateur existant

Le diagramme de séquence et les étapes ci-dessous expliquent comment l'interface utilisateur Spotnana interagit avec les services back-end pour authentifier un utilisateur existant.

Fig : Un diagramme de séquence expliquant l'authentification par mot de passe pour les utilisateurs existants.


ÉtapeFlux
Un utilisateur existant se connecte via l'OBT ou l'application mobile Spotnana en utilisant son e-mail.
1
  • L'interface utilisateur Spotnana envoie une requête API au serveur Spotnana pour récupérer les informations de configuration d'authentification de l'utilisateur. La requête contient les identifiants de connexion de l'utilisateur en tant que paramètres.
  • La réponse contient le tmcId, l'orgId et le authProviderType de l'utilisateur.
2
  • L'interface utilisateur Spotnana envoie une requête API à l'IdP Spotnana en utilisant le clientId, l'e-mail et le mot de passe. Un nouveau jeton d'accès (bearer token) est généré par l'IdP Spotnana et renvoyé à l'interface utilisateur Spotnana.
  • Cette étape authentifie l'utilisateur.
3
  • Une fois l'utilisateur authentifié à l'étape 2, toutes les requêtes API ultérieures doivent contenir le jeton d'accès (bearer token), l'orgId et le tmcId dans l'en-tête de la requête.
  • Le jeton d'accès (bearer token) est validé dans toutes les requêtes API entrantes et la réponse est renvoyée à l'interface utilisateur Spotnana.


Nouvel utilisateur

Le diagramme de séquence et les étapes ci-dessous expliquent comment l'interface utilisateur Spotnana interagit avec les services back-end pour authentifier un nouvel utilisateur (ou un utilisateur existant qui essaie de réinitialiser son mot de passe).


Fig : Un diagramme de séquence expliquant l'authentification par mot de passe pour les nouveaux utilisateurs.


Étape
Flux
Un nouvel utilisateur entre son e-mail sur la page de connexion OBT de Spotnana et clique sur Suivant.
1
  • L'interface utilisateur Spotnana envoie une requête API au serveur Spotnana pour récupérer les informations de configuration d'authentification de l'utilisateur. La requête contient les identifiants de connexion de l'utilisateur en tant que paramètres.
  • La réponse contient le tmcId, l'orgId et le authProviderType de l'utilisateur.
1 a

L'utilisateur entre un nouveau mot de passe et clique sur Suivant.

2
  • L'interface utilisateur Spotnana envoie une requête API à l'IdP Spotnana pour enregistrer l'utilisateur ainsi que son clientId, son e-mail et son nouveau mot de passe.
  • Une fois les détails enregistrés, un mot de passe à usage unique (OTP) est envoyé à l'adresse e-mail de l'utilisateur.
3
  • L'utilisateur saisit l'OTP dans l'interface utilisateur Spotnana et clique sur Vérifier.
  • L'interface utilisateur Spotnana envoie une requête à l'IdP Spotnana pour vérifier l'OTP et générer un jeton d'accès (bearer token) pour la connexion.
  • Le jeton d'accès (bearer token) est généré et renvoyé à l'interface utilisateur Spotnana. Cela indique une authentification réussie de l'utilisateur pour accéder à la plateforme Spotnana en utilisant le jeton d'accès.
4
  • Une fois l'utilisateur authentifié à l'étape 3, toutes les requêtes API ultérieures doivent contenir le jeton d'accès (bearer token), l'orgId et le tmcId dans l'en-tête de la requête.
  • Le jeton d'accès (bearer token) est validé dans toutes les requêtes API entrantes et la réponse est renvoyée à l'interface utilisateur Spotnana.


Authentification basée sur l'IdP

Spotnana prend en charge l'authentification via des IdP tels que Google, Azure et des IdP personnalisés en utilisant OpenID Connect, ainsi que les protocoles SAML. Le diagramme de séquence et les étapes ci-dessous expliquent le flux d'authentification basé sur l'IdP.

Fig : Un diagramme de séquence expliquant le flux d'authentification basé sur l'IdP.


ÉtapeFlux
Un utilisateur se connecte via l'OBT ou l'application mobile Spotnana en utilisant son e-mail.
1
  • L'interface utilisateur Spotnana envoie une requête API au serveur Spotnana pour récupérer les informations de configuration d'authentification de l'utilisateur. La requête contient les identifiants de connexion de l'utilisateur en tant que paramètres.
  • La réponse contient le tmcId, l'orgId et le authProviderType de l'utilisateur.
2

L'interface utilisateur Spotnana redirige la demande vers l'IdP Spotnana.

3

L'IdP Spotnana redirige la demande vers l'IdP du partenaire. Ceci initie l'authentification de l'IdP pour l'utilisateur.

Remarque : Pour chaque redirection, un code d'état 302 est renvoyé pour indiquer que la requête a été redirigée vers une URL différente.
4

Une connexion est établie entre l'IdP Spotnana et l'IdP du partenaire. Cette connexion est établie pour s'assurer que l'utilisateur est authentifié par l'IdP du partenaire.

Remarque : Pendant cette connexion, l'IdP Spotnana envoie le clientId et le clientSecret sous forme de données encodées en URL à l'aide d'un appel API au partenaire IdP. Si les serveurs IdP ne peuvent pas traiter ce format de données, le serveur Spotnana peut agir en tant que proxy pour traduire les données dans un format reconnu par l'IdP partenaire.
5

L'IdP partenaire authentifie l'utilisateur avec succès.

Remarque : Après cette étape, le profil utilisateur doit toujours passer par la vérification du jeton d'accès (bearer token).
5 a

Après une authentification réussie, la réponse de l'IdP partenaire est envoyée à l'IdP Spotnana.

5 b

L'IdP Spotnana génère un code unique pour le profil utilisateur et l'envoie à l'interface utilisateur Spotnana.

6
  • L'interface utilisateur Spotnana envoie une requête API à l'IdP Spotnana en utilisant le clientID et le code reçu à l'étape 5(b).
  • L'IdP Spotnana génère un nouveau jeton d'accès (bearer token) et l'envoie à l'interface utilisateur Spotnana.
Remarque : Une création réussie du jeton d'accès (bearer token) indique que l'utilisateur a été authentifié et est autorisé à accéder à Spotnana.
7
  • Une fois l'utilisateur authentifié à l'étape 6, toutes les requêtes API ultérieures doivent contenir le jeton d'accès (bearer token), l'orgId et le tmcId dans l'en-tête de la requête.
  • Le jeton d'accès (bearer token) est validé dans toutes les requêtes API entrantes et la réponse est renvoyée à l'interface utilisateur Spotnana.


Authentification basée sur API

Les partenaires qui utilisent les API de Spotnana pour se connecter à la plateforme Spotnana peuvent utiliser notre point d'accès d'authentification pour générer un jeton d'accès (bearer token) pour leurs utilisateurs. Le diagramme de séquence suivant illustre le flux d'authentification pour tout partenaire utilisant l'authentification basée sur API.

Fig : Un diagramme de séquence expliquant l'authentification basée sur API.


ÉtapeFlux
1

L'utilisateur API effectue un appel POST au point d'accès get-auth-token(clientId,clientSecret) sur le serveur Spotnana pour générer et récupérer un jeton d'accès temporaire (bearer token).

Voici une requête cUrl d'exemple à utiliser lors de l'appel du point d'accès get-auth-token :

curl -i -X POST \
https://api.spotnana.com/get-auth-token \
-H 'Content-Type: application/json' \
-d '{
  "clientId": "sample-apiuser@tmcorg.com",
  "clientSecret": "<password>"
}'
Remarque : Remplacez les valeurs clientId et clientSecret par les identifiants que vous avez reçus de Spotnana. 
2
  • Le serveur Spotnana appelle la méthode getToken(clientId,clientSecret) dans l'IdP Spotnana, qui génère un bearerToken temporaire et le renvoie au serveur Spotnana.
  • Le serveur Spotnana renvoie ce jeton d'accès (bearer token) sous forme de réponse JSON à l'utilisateur API.


Une fois que l'utilisateur API a reçu le jeton d'accès (bearer token), toutes les requêtes ultérieures adressées aux API Spotnana (par exemple, Trip APIs) doivent inclure le jeton d'accès (bearer token) dans l'en-tête pour l'autorisation. 

Remarque : Le point d'accès get-auth-token(clientId, clientSecret) a une limite de débit de 100 appels API par 5 minutes.


Authentification basée sur iFrame

Un iFrame ou une solution intégrée se produit lorsque les partenaires intègrent l'interface utilisateur Spotnana dans l'interface utilisateur du partenaire, ce qui signifie que les utilisateurs accèdent à Spotnana via l'interface utilisateur du partenaire. Dans ce scénario, l'authentification de l'utilisateur est gérée sur la base d'un échange de jetons entre les systèmes du partenaire et de Spotnana.

Remarque : Pour l'authentification basée sur iFrame, l'utilisateur qui se connecte sera désigné comme un appelant. Ceci est fait pour permettre des scénarios spécifiques où un utilisateur API/Machine se connecte et demande un jeton d'accès pour un autre utilisateur. Cet utilisateur API/Machine pourrait utiliser des identifiants d'administrateur TMC (Travel Management Company) pour se connecter directement au serveur Spotnana. Par conséquent, nous utiliserons appelant comme terme général, qui peut faire référence à un utilisateur se connectant à son propre profil ou à un utilisateur API/Machine demandant un jeton d'accès pour un autre utilisateur.


Le diagramme de séquence suivant illustre comment le flux d'authentification est géré à l'aide d'un échange de jetons entre les serveurs Spotnana et partenaires.

Fig : Un diagramme de séquence expliquant l'authentification basée sur iFrame à l'aide d'un échange de jetons.


ÉtapeFlux
Un appelant se connecte via l'interface utilisateur du partenaire.
1L'interface utilisateur du partenaire rend l'interface utilisateur Spotnana via un iFrame.
2L'interface utilisateur Spotnana envoie une requête à l'interface utilisateur du partenaire via un message post pour récupérer les jetons. La requête est envoyée avec type=TOKEN_EXCHANGE_REQUEST.
3

L'interface utilisateur du partenaire envoie une requête API au serveur partenaire pour récupérer le jeton OAuth, initiant les étapes consécutives suivantes dans le flux d'authentification.

3 a

Le serveur partenaire appelle le serveur Spotnana en utilisant les identifiants de l'utilisateur et le jeton sujet comme paramètres. Le serveur Spotnana vérifie si la requête entrante est envoyée par un utilisateur API/Machine.

3 b
  • Le serveur Spotnana appelle le serveur partenaire pour récupérer l'e-mail du sujet (c'est-à-dire, l'appelant).
  • L'e-mail est récupéré et renvoyé au serveur Spotnana, qui est utilisé pour identifier l'utilisateur.
3 c
  • La réponse à la requête API de l'étape 1 est envoyée par le serveur Spotnana au serveur partenaire, contenant le jeton d'accès (access token) et le jeton de rafraîchissement (refresh token).
  • Ces détails sont ensuite envoyés à l'interface utilisateur du partenaire.
4

L'interface utilisateur du partenaire envoie le jeton à l'interface utilisateur Spotnana via un message post avec type=TOKEN_EXCHANGE_RESPONSE.

5
  • L'interface utilisateur Spotnana envoie une requête API au serveur Spotnana pour générer et récupérer un nouveau jeton d'accès (bearer token).
  • Un jeton d'accès (bearer token) est généré par le serveur Spotnana et renvoyé à l'interface utilisateur Spotnana.
Remarque : Une création réussie du jeton d'accès (bearer token) indique que l'utilisateur a été authentifié et est autorisé à accéder à Spotnana.
6
  • Une fois l'utilisateur authentifié à l'étape 3, toutes les requêtes API ultérieures doivent contenir le jeton d'accès (bearer token), l'orgId et le tmcId dans l'en-tête de la requête.
  • Le jeton d'accès (bearer token) est validé dans toutes les requêtes API entrantes et la réponse est renvoyée à l'interface utilisateur Spotnana.


Authentification basée sur un code d'autorisation

Le diagramme de séquence suivant illustre comment le flux d'authentification est géré à l'aide d'un code d'autorisation.

Fig : Un diagramme de séquence expliquant l'authentification basée sur un code d'autorisation à l'aide d'un code d'autorisation.


ÉtapeFlux
1

L'interface utilisateur du partenaire appelle le serveur partenaire pour récupérer le code d'autorisation pour l'appelant qui se connecte. Le code d'autorisation est récupéré et renvoyé à l'interface utilisateur du partenaire.

2

L'interface utilisateur du partenaire envoie une requête à l'interface utilisateur Spotnana à l'aide d'une URL de redirection personnalisée contenant le tmcId et le authCode en tant que paramètres.

3

L'interface utilisateur Spotnana effectue un appel API POST au serveur Spotnana en utilisant le point d'accès v2/auth/token/companies/<tmcId>(authCode).

3 a
  • Le serveur Spotnana envoie une requête au serveur partenaire pour récupérer le pid de l'utilisateur à l'aide du code d'autorisation.
  • Le pid de l'utilisateur est récupéré et envoyé au serveur Spotnana.
3 b

Le jeton d'accès (access token) et le jeton de rafraîchissement (refresh token) sont générés par le serveur Spotnana et envoyés à l'interface utilisateur Spotnana.

4
  • L'interface utilisateur Spotnana envoie une requête au serveur Spotnana en utilisant le jeton d'accès (access token) et le jeton de rafraîchissement (refresh token) pour générer et récupérer un jeton d'accès (bearer token) pour l'accès.
  • Un jeton d'accès (bearer token) est généré et envoyé à l'interface utilisateur Spotnana.
Remarque : Une création réussie du jeton d'accès (bearer token) indique que l'utilisateur a été authentifié et est autorisé à accéder à Spotnana.
5
  • Une fois l'utilisateur authentifié à l'étape 4, toutes les requêtes API ultérieures doivent contenir le jeton d'accès (bearer token), l'orgId et le tmcId dans l'en-tête de la requête.
  • Le jeton d'accès (bearer token) est validé dans toutes les requêtes API entrantes et la réponse est renvoyée à l'interface utilisateur Spotnana.


Remarque : Ce flux d'authentification ne peut pas être utilisé dans des scénarios où une TMC administrateur autorise plusieurs utilisateurs à utiliser le même e-mail lors de la connexion.


Authentification machine à machine (M2M)

La méthode d'authentification M2M est adaptée lorsque le flux d'authentification implique que l'application cliente accède à une URL de rappel tierce pour générer l'accessToken pour l'utilisateur. Le diagramme de séquence suivant illustre le flux d'authentification M2M.

Fig : Un diagramme de séquence expliquant le flux d'authentification M2M.


ÉtapeFlux
Les clés publiques de toutes les applications utilisées dans l'authentification sont synchronisées entre le serveur Spotnana et l'IdP Spotnana. Elles seront utilisées ultérieurement pour vérifier le jeton d'accès dans le flux d'authentification.
1

Le serveur partenaire envoie une requête API à /oauth2/token(clientId,clientSecret) dans l'IdP Spotnana pour générer un jeton d'accès (bearer token). Le nouveau jeton d'accès (bearer token) est renvoyé au serveur partenaire.

2
  • Le serveur partenaire envoie une requête API à une URL de rappel tierce pour générer un jeton d'accès (access token) pour l'utilisateur.
  • Ce jeton d'accès est créé et envoyé au serveur Spotnana.
3
  • Le serveur Spotnana valide la signature du jeton d'accès à l'aide des clés publiques synchronisées précédemment. Il valide également le claim_id qui vérifie l'identité du partenaire.
  • Le jeton d'accès est ensuite envoyé au serveur partenaire pour authentifier l'utilisateur.




Cet article a-t-il été utile ?

C'est super !

Merci pour votre commentaire

Désolé ! Nous n'avons pas pu vous être utile

Merci pour votre commentaire

Dites-nous comment nous pouvons améliorer cet article !

Sélectionner au moins l'une des raisons
La vérification CAPTCHA est requise.

Commentaires envoyés

Nous apprécions vos efforts et nous allons corriger l'article