Dekódovanie tokenu JWT v Azure Logic Apps je možné dosiahnuť bez použitia externých knižníc, ako sú Node.js alebo C#. Tu je postup krok za krokom:
1. Extrahujte token JWT: Najprv musíte extrahovať token JWT z prichádzajúcej žiadosti. Zvyčajne sa nachádza v hlavičke „Autorization“ žiadosti.
2. Rozdeľte token JWT: tokeny JWT sa skladajú z troch častí oddelených bodkami: hlavičkou, užitočným zaťažením a podpisom. Ak chcete izolovať užitočné zaťaženie, ktoré obsahuje podrobnosti používateľa, musíte rozdeliť token týmito bodkami.
3. Dekódujte užitočné zaťaženie: Užitočné zaťaženie je kódované Base64url. Funkciu „Base64ToString` môžete použiť v logických aplikáciách na dekódovanie. Musíte však zabezpečiť, aby bol reťazec Base64 správne vyplnený "=", aby sa jej dĺžka stala násobkom 4.
4. Parse JSON: Po dekódovaní bude užitočné zaťaženie reťazcom JSON. Použite funkciu `json` v logických aplikáciách na analýzu tohto reťazca do objektu JSON, s ktorým môžete pracovať.
Tu je zjednodušený príklad toho, ako by to mohlo vyzerať v logických aplikáciách:
- Rozdeľte token JWT: Na rozdelenie tokenu použite výraz ako `Split (TriggerBody ()? ['Autorization'], '.').
- Dekódujte užitočné zaťaženie: pripojenie "=" na zabezpečenie správneho vypchávka a potom na jeho dekódovanie použite `base64tostring`.
- Parse JSON: Na analýzu dekódovaného užitočného zaťaženia použite funkciu `json`.
Ak chcete získať opakovane použiteľný prístup, zvážte vytvorenie aplikácie pre detskú logiku špecificky na analýzu žetónov JWT, ako je opísané v [3]. To vám umožní ľahko integrovať analýzu JWT do viacerých logických aplikácií.
If you need to validate the token (check its signature), you would typically use an external service or library, as Logic Apps does not natively support JWT validation. Avšak na jednoduché extrahovanie nárokov bez validácie postačujú vyššie uvedené kroky.
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://techcommunity.microsoft.com/blog/azuredevcommunityblog/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-blacklistllist
[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/