Vous appréciez mon travail ?
Je serais ravi de prendre un café !

Vous prenez du plaisir à lire mes articles ? Vous apprenez de nouvelles choses ? Je serais ravis que vous supportiez mon travail avec une petite participation

1 café Merci, vous financez ma dose quotidienne de théïne (oui, en vrai je ne bois pas de café).
5 cafés Génial, ça couvre mes frais de serveur mensuels.
10 cafés Fantastique, avec ça je peux investir dans du matériel et approfondir mes connaissances.
BazinGa's - Tips & tuto IT

Paramétrer une authentification par token OAuth 2.0

Si vous utilisez les API web avec FME, vous avez donc déjà eu affaire avec l’authentification auprès de ces API. FME propose en standard un grand nombre de services d’authentification web mais il faut parfois configurer soi-même la gestion de cette authentification et c’est notamment le cas avec OAuth 2.0 en Client Credentials Flow.

Le Client Credentials Flow est une procédure d’authentification simple dans laquelle deux applications discutent : un service A qui veut accéder aux ressources protégées d’un service B.

Principe

Le principe est le suivant :

Le client possède un client_id et un client_secret, l’équivalent d’un login/mot de passe pour machine.

Il les envoie au serveur d’authentification (Auth Server) pour obtenir un jeton d’accès aux ressources (access token).

Pour chaque accès aux ressources, le client inclut le token dans sa requête via le header suivant : Authorization: Bearer mon_token.

Au bout d’un certain temps, le jeton expire et le client doit alors le renouveler pour poursuivre l’accès.

Paramétrage

Voici comment paramétrer les authentifications via Client Credentials Flow sous FME.

Commencez par vous rendre dans les connexions de FME (« Utilities » > « FME options » > « Web Connections« ).

Cliquez sur « Manage Services… » puis ajoutez un service via le bouton « + » et « Token Service« .

Paramétrez ensuite votre service en lui donnant un nom et éventuellement un description (« Web Service Setup Instructions »).

Dans la partie « Token Generation REST API », vous devez indiquer l’URL d’authentification ainsi que les données à envoyer au serveur d’authentification pour récupérer un jeton. Vous pouvez entrer les informations en dur ou utiliser des paramètres qui seront demander lors de l’enregistrement d’un service. Cela permet par exemple de gérer une API de TEST et une API de PROD.

Voici le paramétrage avec des paramètres, ils sont nommés et peuvent être utilisé via les mots clés [nom_du_param] dans l’URL et les données à envoyer :

Le champ « Request Data » doit être complété avec les paramètres demandés par le serveur d’authentification, reportez vous donc à sa documentation.

Vous devez ensuite paramétrer FME pour qu’il puisse récupérer correctement les informations dans la réponse qui lui sera envoyée. Là encore référez vous à la documentation pour connaitre les clés utilisées dans le JSON renvoyé. Voici un exemple de paramétrage pour le JSON suivant :

{
  "access_token": "eyJ0...qug",
  "scope": "am_application_scope default",
  "token_type": "Bearer",
  "expires_in": 12600
}

Terminez le paramétrage du service par la façon dont FME utilisera le jeton. Cela dépend ici aussi de votre API. Voici un exemple utilisant le header Authorisation avec pour valeur Bearer mon_token (le paramètre [TOKEN] sera remplacé par la vraie valeur du token).

Validez pour sauvegarder le paramétrage du service.

Vous pouvez maintenant enregistrer une ou plusieurs connexions basées sur le service paramétré :

Puis choisissez le service web et complétez le paramétrage selon les paramètres que vous avez définis :

Vous pourrez alors utiliser cette connexion dans le HTTPCaller ou à tout autre endroit nécessitant une authentification web :

Il ne vous reste plus qu’à profiter de votre API.


Cet article vous a plu ?

N'hésitez pas à le partager, il interessera surement certains de vos contacts.

Les thèmes suivants contiennent des articles en lien avec celui-ci, allez faire un tour :

FMESIG OAuth 2.0tokenWeb connection

50%