Dekodowanie tokenu JWT w aplikacjach logicznych Azure można osiągnąć bez użycia bibliotek zewnętrznych, takich jak Node.js lub C#. Oto podejście krok po kroku:
1. Wyodrębnij token JWT: Po pierwsze, musisz wyodrębnić token JWT z żądania przychodzące. Zazwyczaj występuje to w nagłówku „autoryzacji” żądania.
2. Podziel token JWT: Tokeny JWT składają się z trzech części oddzielonych kropkami: nagłówek, ładunek i podpis. Musisz podzielić token przez te kropki, aby odizolować ładunek, który zawiera dane użytkownika.
3. Dekoduj ładunek: ładunek jest zakodowany Base64Url. Aby ją zdekodować, możesz użyć funkcji „base64ToString” w aplikacjach logicznych. Musisz jednak upewnić się, że ciąg Base64 jest odpowiednio wyściełany za pomocą „=”, aby jego długość była wielokrotnością 4.
4. Parse Json: Po dekodowaniu ładunek będzie ciągiem JSON. Użyj funkcji „JSON” w aplikacjach logicznych, aby przeanalizować ten ciąg w obiekcie JSON, z którym możesz pracować.
Oto uproszczony przykład tego, jak to może wyglądać w aplikacjach logicznych:
- Podziel token JWT: Użyj wyrażenia takiego jak „split (TriggerBody ()? [„ Autishation ”], '.')` `Podziel token.
- Decode the Payload: Append "=" to ensure proper padding and then use `base64ToString` to decode it.
- Parse Json: Użyj funkcji „JSON”, aby przeanalizować dekodowany ładunek.
Aby uzyskać bardziej podejście wielokrotnego użytku, rozważ utworzenie aplikacji logicznej dziecięcej specjalnie do analizowania tokenów JWT, jak opisano w [3]. Umożliwia to łatwe zintegrowanie parsowania JWT z wieloma aplikacjami logicznymi.
Jeśli potrzebujesz potwierdzenia tokena (sprawdź jego podpis), zwykle używałbyś usługi zewnętrznej lub biblioteki, ponieważ aplikacje logiczne nie obsługują walidacji JWT. Jednak w celu po prostu wyodrębnienia roszczeń bez walidacji powyższe kroki wystarczą.
Cytaty:
[1] https://stackoverflow.com/questions/54257879/how-to-decode-a-jwt-token-in-azure-logic-app
[2] https://www.criiipto.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-grafql
[5] https://techcommunity.microsoft.com/blog/azuredevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restr/3336802
[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/