Pentru a prelua și decoda un jeton JWT într -o aplicație logică, puteți urma acești pași:
1. Recuperați jetonul JWT: În primul rând, trebuie să obțineți jetonul JWT. Acest lucru se poate face analizând anteturile unei cereri primite. Dacă jetonul este trimis în antetul „Autorizare”, îl puteți extrage folosind o acțiune „Parse JSON” cu o schemă care surprinde cheia „autorizației”. Apoi, creați o variabilă pentru a deține doar partea de jeton (de exemplu, după „purtător”) [10].
2. Decodarea jwt token: jetoanele JWT sunt codificate de base64URL. Puteți decodifica porțiunea de sarcină utilă a jetonului folosind funcțiile `Split` și` Base64ToString` în aplicațiile logice. Împărțiți jetonul după „”. Separator pentru a izola sarcina utilă. Apoi, anexați "=" pentru a vă asigura că lungimea este multiplă de 4 pentru decodarea baze64. Aplicațiile logice vor converti implicit acest lucru într -un șir de bază64, pe care apoi îl puteți decoda folosind `base64ToString` [1] [3].
3. Analizați sarcina utilă decodificată: După decodificarea sarcinii utile, veți avea un șir JSON. Utilizați o altă acțiune „Parse JSON” pentru a converti acest șir într -un obiect JSON cu care puteți lucra în aplicația dvs. logică. Puteți defini o schemă pentru acest obiect JSON pe baza revendicărilor preconizate din jetonul JWT [3].
4. Extras revendicări: Odată ce JSON este analizat, puteți extrage pretenții specifice (cum ar fi ID -ul utilizatorului sau e -mailul) și le puteți utiliza, după cum este necesar în fluxul de lucru al aplicației logice.
Această abordare vă permite să decodați și să utilizați jetoane JWT direct în aplicațiile Azure Logic, fără a fi nevoie să creați o funcție Azure sau să utilizați servicii externe pentru decodare. Cu toate acestea, dacă trebuie să validați jetonul (verificați semnătura acestuia), este posibil să fie necesar să utilizați un serviciu extern sau o funcție Azure cu o bibliotecă capabilă de validarea JWT.
Citări:
[1] https://stackoverflow.com/questions/54257879/how-to-decode-a-jwt-token-in-azure-logic-app
[2] https://www.criipto.com/blog/jwt-validation-guide
[3] https://autosops.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-securiting-a-logic-app
[9] https://www.mikaelsand.se/2022/06/excting-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