Dekodiranje žetona JWT v aplikacijah Azure Logic je mogoče doseči brez uporabe zunanjih knjižnic, kot sta Node.js ali C#. Tu je pristop po korakih:
1. Izvlecite žeton JWT: Najprej morate iz dohodne zahteve izvleči žeton JWT. To običajno najdemo v glavi zahteve "pooblastilo".
2. Razdelite žeton JWT: žetoni JWT so sestavljeni iz treh delov, ločenih s pikami: glava, obremenitev in podpis. Za izolacijo koristne obremenitve morate razdeliti žeton s temi pikami, ki vsebuje podatke o uporabniku.
3. Dekodirano koristno obremenitev: koristno obremenitev je kodirana base64url. Za dekodiranje lahko uporabite funkcijo `base64ToString` v logičnih aplikacijah. Vendar morate zagotoviti, da je niz Base64 pravilno oblazinjen z "=", da bo njegova dolžina večkratna od 4.
4. Razčlenitev JSON: Ko bo dekodirana, bo koristna obremenitev JSON niz. Uporabite funkcijo `json` v logičnih aplikacijah, da razčlenite ta niz v objekt JSON, s katerim lahko delate.
Tu je poenostavljen primer, kako to lahko izgleda v logičnih aplikacijah:
- Razdelite žeton JWT: uporabite izraz, kot je `split (Triggerbody ()? ['Pooblastilo'], '.')` Razdeliti žeton.
- dekodirajte koristno obremenitev: dodaj "=", da zagotovite pravilno oblazinjenje, in nato za dekodiranje uporabite `base64ToString`.
- Parse JSON: Za razčlenitev dekodirane koristne obremenitve uporabite funkcijo `json`.
Za pristop za večkratno uporabo razmislite o ustvarjanju otroške logične aplikacije posebej za razčlenitev žetonov JWT, kot je opisano v [3]. To vam omogoča enostavno integracijo JWT razčlenjevanja v več logičnih aplikacij.
Če morate potrditi žeton (preveriti njegov podpis), običajno uporabljate zunanjo storitev ali knjižnico, saj logične aplikacije ne podpirajo validacije JWT. Vendar pa za preprosto pridobivanje zahtevkov brez preverjanja zadoščajo zgornji koraki.
Navedbe:
[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-jwt-with-graphql
[5] https://techcommunity.microsoft.com/blog/azarevcommunityblog/part-4-secure-your-logic-app-api-management-8211-Validate-jwt-access-restro/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/