Aby odzyskać i dekodować token JWT w aplikacji logicznej, możesz wykonać te kroki:
1. Odzyskaj token JWT: Po pierwsze, musisz uzyskać token JWT. Można to zrobić poprzez analizowanie nagłówków przychodzącego wniosku. Jeśli token zostanie wysłany w nagłówku „autoryzacją”, możesz wyodrębnić go za pomocą akcji „parse json” z schematem, który przechwytuje klucz „autoryzację”. Następnie utwórz zmienną do przechowywania tylko części tokena (np. Po „nosicielu”) [10].
2. Dekoduj token JWT: tokeny JWT są zakodowane przez Base64Url. Możesz zdekodować część tokena ładowania za pomocą funkcji „split” i `base64ToString` w aplikacjach logicznych. Podziel token przez „”. separator do izolowania ładunku. Następnie dołącz „=”, aby upewnić się, że długość jest wielokrotnością 4 dla dekodowania Base64. Aplikacje logiczne domyślnie przekonwertują to na ciąg Base64, który możesz następnie zdekodować za pomocą `base64ToString` [1] [3].
3. Przejdź dekodowany ładunek: Po dekodowaniu ładunku będziesz mieć ciąg JSON. Użyj kolejnej akcji „Parse Json”, aby przekonwertować ten ciąg na obiekt JSON, z którym możesz pracować w aplikacji logicznej. Możesz zdefiniować schemat tego obiektu JSON w oparciu o oczekiwane roszczenia w tokena JWT [3].
4. Wyodrębnia roszczenia: Po przeanalizowaniu JSON możesz wyodrębnić określone roszczenia (takie jak identyfikator użytkownika lub e -mail) i używać ich w razie potrzeby w przepływie pracy aplikacji logicznej.
Takie podejście pozwala dekodować i używać tokenów JWT bezpośrednio w aplikacjach logicznych Azure bez konieczności tworzenia funkcji Azure lub korzystania z usług zewnętrznych do dekodowania. Jeśli jednak potrzebujesz potwierdzenia tokena (sprawdź jego podpis), może być konieczne użycie usługi zewnętrznej lub funkcji platformy Azure z biblioteką zdolną do sprawdzania poprawności JWT.
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://www.michev.info/blog/post/2140/decode-jwt-access-and-id-tokens-via-powershell
[6] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist
[7] https://techcommunity.microsoft.com/blog/azuredevcommunityblog/part-4-secure-your-logic-app-using-api-zarządzanie-8211-validate-jwt-access-rustr/336802
[8] https://docs.azure.cn/en-us/logic-apps/logic-apps-securing-a-logic-app
[9] https://www.mikaelsand.se/2022/06/Extracting-Values-from-a-jwt-token-in-apim/
[10] https://rakhesh.com/azure/parsing-json-tokens-in-a-logic-app/
[11] https://github.com/auth0/jwt-decode