JWT marķiera dekodēšanu Azure loģikas lietotnēs var sasniegt, neizmantojot ārējās bibliotēkas, piemēram, Node.js vai C#. Šeit ir soli pa solim:
1. Extract the JWT Token: First, you need to extract the JWT token from the incoming request. Parasti tas ir atrodams pieprasījuma virsrakstā “Autorization”.
2. Sadaliet JWT marķieri: JWT marķieri sastāv no trim daļām, kas atdalītas ar punktiem: galveni, kravu un parakstu. Lai izolētu kravu, kas satur lietotāja informāciju, jums ir jāsadala marķieris ar šiem punktiem.
3. DECODE SAISTĪBA: Lietderīgā slodze ir base64Url kodēta. Lai to atšifrētu, varat izmantot funkciju “base64toString” loģiskās lietotnēs. However, you need to ensure that the Base64 string is properly padded with "=" to make its length a multiple of 4.
4. Parse JSON: Pēc dekodēšanas kravas būs JSON virkne. Izmantojiet funkciju `json` loģikas lietotnēs, lai parsētu šo virkni JSON objektā, ar kuru jūs varat strādāt.
Šeit ir vienkāršots piemērs tam, kā tas varētu izskatīties loģiskās lietotnēs:
- Sadaliet JWT marķieri: izmantojiet izteicienu, piemēram, “Split (TriggerBody ()? ['Autorization'], '.')`, Lai sadalītu marķieri.
- atšifrēt kravu: pievienojiet "=", lai nodrošinātu pareizu polsterējumu, un pēc tam izmantojiet `base64toString`, lai to atkodētu.
- Parse JSON: izmantojiet funkciju `json`, lai parsētu dekodēto kravu.
Lai iegūtu atkārtoti lietojamāku pieeju, apsveriet iespēju izveidot bērnu loģikas lietotni, kas īpaši paredzēta JWT žetonu parsēšanai, kā aprakstīts [3]. This allows you to easily integrate JWT parsing into multiple Logic Apps.
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. Tomēr, lai vienkārši iegūtu pretenzijas bez validācijas, pietiek ar iepriekšminētajām darbībām.
Atsauces:
[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://autosysyps.com/blog/pars-jwt-tokens-in-azure-logic-apps
[4] https://hasura.io/blog/best-pracices-of-using-jwt-with-graphql
.
[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-tokensin-a-logic-app/
[11] https://www.reddit.com/r/azure/comments/u4alct/blog_parse_jwt_token_with_azure_logic_apps/