Le décodage d'un jeton JWT dans les applications logiques Azure peut être réalisé sans utiliser de bibliothèques externes comme Node.js ou C #. Voici une approche étape par étape:
1. Extraire le jeton JWT: Tout d'abord, vous devez extraire le jeton JWT de la demande entrante. Cela se trouve généralement dans l'en-tête «Autorisation» de la demande.
2. Divisez le jeton JWT: les jetons JWT sont composés de trois parties séparées par des points: en-tête, charge utile et signature. Vous devez diviser le jeton par ces points pour isoler la charge utile, qui contient les détails de l'utilisateur.
3. Décoder la charge utile: la charge utile est encodée Base64url. Vous pouvez utiliser la fonction `Base64ToString` dans les applications logiques pour la décoder. Cependant, vous devez vous assurer que la chaîne Base64 est correctement rembourrée avec "=" pour faire de sa longueur un multiple de 4.
4. Parse JSON: Une fois décodé, la charge utile sera une chaîne JSON. Utilisez la fonction `JSON» dans des applications logiques pour analyser cette chaîne dans un objet JSON avec lequel vous pouvez travailler.
Voici un exemple simplifié de l'apparence des applications logiques:
- Divisez le jeton JWT: utilisez une expression comme «Split (TriggerBody ()? [« Autorisation »],». »)« Pour diviser le jeton.
- Décoder la charge utile: ajoutez "=" pour assurer un rembourrage approprié, puis utilisez `Base64ToString` pour le décoder.
- Parse JSON: utilisez la fonction `JSON» pour analyser la charge utile décodée.
Pour une approche plus réutilisable, envisagez de créer une application de logique enfant spécifiquement pour l'analyse des jetons JWT, comme décrit dans [3]. Cela vous permet d'intégrer facilement JWT l'analyse dans plusieurs applications logiques.
Si vous devez valider le jeton (vérifier sa signature), vous utiliseriez généralement un service ou une bibliothèque externe, car les applications logiques ne prennent pas en charge la validation JWT native. Cependant, pour simplement extraire les réclamations sans validation, les étapes ci-dessus suffisent.
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://techcommunity.microsoft.com/blog/azurevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restr/336802
[6] https://auth0.com/blog/how-to-validate-jwt-dotnet/
[7] https://github.com/auth0/jwt-decode
[8] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist
[9] https://fusionauth.io/dev-tools/jwt-decoder
[10] https://rakhesh.com/azure/parsing-json-tokens-in-a-logic-app/
[11] https://www.reddit.com/r/azure/comments/u4alct/blog_parse_jwt_token_with_azure_logic_apps/