Power BI : demander l’API avec JWT

Posté le : 17/06/2021

Partager

Vous ne parvenez pas à connecter votre Power BI à une API en utilisant JSON Web Token ? Ne vous inquiétez pas, je suis passé par là il y a quelques semaines, et voici ce que j’ai trouvé… Et devinez quoi ? Ça marche !

JSON Web Token

J’ai d’abord essayé d’utiliser le type « Web » comme source de données, mais cela n’a pas fonctionné car nous avons affaire ici à une forme spécifique d’authentification à notre API. Alors, comment ça fonctionne ?

En fait, le JSON Web Token est un moyen de représenter de manière sécurisée l’identité d’un utilisateur lors d’une interaction entre deux parties. Il vous permet d’identifier l’utilisateur sans avoir à envoyer ses identifiants privés à chaque requête.

En d’autres termes, JWT fonctionne comme illustré ci-dessous :

Fonctionnement JSON Web Token

REST API using JWT

 

  • L’utilisateur envoie une demande de connexion. C’est là qu’il transmet ses identifiants (nom d’utilisateur et mot de passe par exemple).
  • Ces informations sont envoyées à la base de données des utilisateurs pour vérification.
  • Une fois vérifiées, l’API Web recevra une confirmation indiquant que les identifiants sont valides.
  • Ensuite, l’API Web créera un jeton JSON Web Token et le renverra à l’application cliente.
  • À présent, l’application cliente est en mesure d’utiliser ce Token (au lieu des informations d’identification du client) pour authentifier l’utilisateur dans chaque requête.
  • Une fois que le Token est vérifié, le client peut accéder aux services REST.

Outil pour interroger l'API : Insomnia

Maintenant vous comprenez pourquoi une simple connexion à une source de données Web ne fonctionnait pas dans Power BI. Afin de contourner ce problème, nous pourrions envisager d’écrire une requête HTTP en utilisant le langage M (le langage utilisé par Power Query, qui est un ETL intégré dans Power BI).

Pour visualiser notre requête HTTP, nous allons utiliser une plateforme API Client comme Postman ou Insomnia.

1. Tout d’abord, nous passons l’URL du Token dans une requête POST et nous indiquons le nom d’utilisateur, le mot de passe ainsi que le type de subvention (comme mot de passe).

Première étape Insomnia

2. Ensuite, nous ajouterons l’Id du client et le secret du client comme en-tête.

2ème étape Insomnia

3. Une fois nos identifiants vérifiés, nous recevrons le jeton d’accès.

3ème étape Insomnia

4. Ensuite, nous créons une requête Get pour obtenir des données à partir du point de terminaison de l’API en passant le jeton comme authentification Bearer.

4ème étape Insomnia

5. Et c’est là que toute la magie opère, et que vous avez accès à vos données.

5ème étape Insomnia

Connecter Power BI à l'API avec JWT

L’idée est maintenant de faire la même chose dans Power BI.

Tout d’abord, nous allons passer nos identifiants dans les paramètres comme suit :

1ère étape Power BI

Pour s’assurer que nous disposons d’un jeton JWT valide à chaque fois que nous appelons l’API, nous devrions appeler la fonction de connexion dans chaque requête appelant l’API. Cela signifie que ce code doit être inclus dans toutes les requêtes qui appellent l’API. Il traite l’appel de la fonction de connexion à l’API et le stockage du jeton JWT dans une variable pour une utilisation ultérieure. 

2ème étape Power BI

Nous stockons les paramètres d’identification dans une chaîne formatée JSON.

3ème étape Power BI

Ensuite, nous utilisons la fonction Web.Contents() pour effectuer un appel HTTP POST avec les identifiants comme corps.

4ème étape Power BI

REMARQUE : Si Power BI vous demande de Préciser comment vous connecter :

  • Cliquez sur le bouton Modifier les autorisations
  • Assurez-vous de sélectionner Anonyme
  • Cliquez sur Connecter

Power BI comment se connecter

À ce stade, vous devriez avoir accès à vos données. Le résultat est un tableau contenant toutes les valeurs de l’appel API.

J’espère que ces informations vous seront utiles !

Ecrit par Sofiene AZABOU

Contactez-nous Postuler Nos offres d'emploi