Чтобы получить и декодировать токен JWT в приложении Logic, вы можете выполнить эти шаги:
1. Получите токен JWT: Во -первых, вам нужно получить токен JWT. Это может быть сделано путем анализа заголовков входящего запроса. Если токен отправляется в заголовке «Authorization», вы можете извлечь его, используя действие «parse json` с схемой, которая фиксирует ключ« Authorization ». Затем создайте переменную для удержания только токеновой части (например, после «носителя») [10].
2. Декодируйте токен JWT: токены JWT основаны на базе 64URL. Вы можете расшифровать часть токена полезной нагрузки, используя функции `split` и` base64toString` в логических приложениях. Разделили токен на «». Разделитель, чтобы изолировать полезную нагрузку. Затем добавьте «=», чтобы убедиться, что длина равен 4 для декодирования BASE64. Логические приложения косвенно преобразуют это в строку Base64, которую вы можете затем расшифровать, используя `base64toString` [1] [3].
3. Распоряжайте декодированную полезную нагрузку: после декодирования полезной нагрузки у вас будет строка JSON. Используйте еще одно действие `parse json`, чтобы преобразовать эту строку в объект JSON, с которым вы можете работать в своем логическом приложении. Вы можете определить схему для этого объекта JSON на основе ожидаемых претензий в токене JWT [3].
4. Извлеките претензии: как только JSON анализируется, вы можете извлечь конкретные претензии (например, идентификатор пользователя или электронная почта) и использовать их по мере необходимости в рабочем процессе приложения логики.
Этот подход позволяет вам декодировать и использовать токены JWT непосредственно в приложениях Azure Logic без необходимости создавать функцию Azure или использовать внешние службы для декодирования. Однако, если вам нужно проверить токен (проверьте его подпись), вам может потребоваться использовать внешнюю службу или функцию Azure с библиотекой, способной к проверке JWT.
Цитаты:
[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://www.michev.info/blog/post/2140/decode-jwt-access-and-tokens-via-powershell
[6] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist
[7] https://techcommunity.microsoft.com/blog/azurevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restrest/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