Ak chcete získať a dekódovať token JWT v logickej aplikácii, môžete postupovať podľa týchto krokov:
1. Načítajte token JWT: Najprv musíte získať token JWT. To sa dá dosiahnuť analýzou hlavičiek prichádzajúcej žiadosti. Ak sa token zasiela v hlavičke „Autorization“, môžete ho extrahovať pomocou akcie „Parse JSON“ pomocou schémy, ktorá zachytáva kľúč „autorizácie“. Potom vytvorte premennú na držanie iba tokenovej časti (napr. Po „nosiči“) [10].
2. Dekódujte token JWT: tokeny JWT sú základné 64URL kódované. V logických aplikáciách môžete dekódovať časť tokenu užitočného zaťaženia tokenu pomocou funkcií `Split` a` Base64ToString`. Rozdeľte token „“. Oddeľovač na izoláciu užitočného zaťaženia. Potom sa pripojte "=" na zabezpečenie toho, aby dĺžka bola násobok 4 pre dekódovanie Base64. Logické aplikácie to implicitne prevedú na reťazec Base64, ktorý potom môžete dekódovať pomocou `base64tostring` [1] [3].
3. Parujte dekódované užitočné zaťaženie: Po dekódovaní užitočného zaťaženia budete mať reťazec JSON. Použite inú akciu „Parse JSON` na prevod tohto reťazca na objekt JSON, s ktorým môžete pracovať vo svojej logickej aplikácii. Môžete definovať schému pre tento objekt JSON na základe očakávaných nárokov v tokene JWT [3].
4. Extrahujte tvrdenia: Po analýze JSON môžete extrahovať konkrétne nároky (napríklad ID používateľa alebo e -mail) a podľa potreby ich použiť v pracovnom toku logickej aplikácie.
Tento prístup vám umožňuje dekódovať a používať tokeny JWT priamo v logických aplikáciách Azure bez toho, aby ste museli vytvárať funkciu Azure alebo používať externé služby na dekódovanie. Ak však potrebujete overiť token (skontrolujte jeho podpis), možno budete musieť použiť externú službu alebo funkciu Azure s knižnicou schopnou overením JWT.
Citácie:
[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://autosysops.com/blog/parse-jwt-tokens-in-azure-logic-apps
[4] https://hasura.io/blog/best-practices-of-using-using-jwt-with-graphql
[5] https://www.michev.info/blog/post/2140/decode-jwt-access-and-id-id-tokens-via-powershell
[6] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklistllist
Https://techcommunity.microsoft.com/blog/azeedevcommunityblog/part-4-secure-your-logic-app-apus-api -api-Management-8211-Validate-jwt-access-restr/336802
[8] https://docs.azure.cn/en-us/logic-apps/logic-apps-secucing-a-logic-app
[9] https://www.mikaelsand.se/2022/06/extracting-values-from-a-jwt-taoken-in-apim/
[10] https://rakhesh.com/azure/parsing-json-tokens-in-a-logic-app/
[11] https://github.com/auth0/jwt-decode