Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Comment récupérer et décoder un jeton JWT dans une application logique


Comment récupérer et décoder un jeton JWT dans une application logique


Pour récupérer et décoder un jeton JWT dans une application logique, vous pouvez suivre ces étapes:

1. Récupérer le jeton JWT: Tout d'abord, vous devez obtenir le jeton JWT. Cela peut être fait en analysant les en-têtes d'une demande entrante. Si le jeton est envoyé dans l'en-tête «Autorisation», vous pouvez l'extraire en utilisant une action «Parse JSON» avec un schéma qui capture la clé «Autorisation». Ensuite, créez une variable pour contenir uniquement la partie de jeton (par exemple, après "Bearer") [10].

2. Décoder le jeton JWT: les jetons JWT sont codés en base64url. Vous pouvez décoder la partie charge utile du jeton à l'aide des fonctions `Splitw et` Base64ToString` dans les applications logiques. Divisez le jeton par le "." séparateur pour isoler la charge utile. Ensuite, appelez "=" pour vous assurer que la longueur est un multiple de 4 pour le décodage de base64. Les applications logiques convertiront implicitement cela en une chaîne Base64, que vous pouvez ensuite décoder en utilisant `Base64ToString` [1] [3].

3. Analyser la charge utile décodée: Après le décodage de la charge utile, vous aurez une chaîne JSON. Utilisez une autre action «Parse JSON» pour convertir cette chaîne en un objet JSON avec lequel vous pouvez travailler dans votre application logique. Vous pouvez définir un schéma pour cet objet JSON en fonction des revendications attendues dans le jeton JWT [3].

4. Extraire les réclamations: une fois que le JSON est analysé, vous pouvez extraire des affirmations spécifiques (comme l'ID utilisateur ou l'e-mail) et les utiliser selon les besoins dans votre flux de travail Logic App.

Cette approche vous permet de décoder et d'utiliser des jetons JWT directement dans Azure Logic Apps sans avoir besoin de créer une fonction Azure ou d'utiliser des services externes pour le décodage. Cependant, si vous devez valider le jeton (vérifier sa signature), vous devrez peut-être utiliser un service externe ou une fonction Azure avec une bibliothèque capable de validation JWT.

Citations:
[1] https://stackoverflow.com/questions/54257879/how-to-decode-a-jwt-kin-in-azure-logic-app
[2] https://www.criipto.com/blog/jwt-validation-guide
[3] https://autosysops.com/blog/parse-jwt-tokens-in-azure-logic-apps
[4] https://hasura.io/blog/best-practices-of-using-jwt-with-graphql
[5] https://www.michev.info/blog/post/2140/decode-jwt-access-and-id-tokens-via-powershell
[6] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist
[7] https://techcommunity.microsoft.com/blog/azurevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restr/336802
[8] https://docs.azure.cn/en-us/logic-apps/logic-apps-secury-a-logic-app
[9] https://www.mikaelsand.se/2022/06/extructing-values-from-a-jwt-token-in-apim/
[10] https://rakhesh.com/azure/parsing-json-tokens-in-a-logic-app/
[11] https://github.com/auth0/jwt-decode