Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ロジックアプリでJWTトークンを取得してデコードするにはどうすればよいですか


ロジックアプリでJWTトークンを取得してデコードするにはどうすればよいですか


ロジックアプリでJWTトークンを取得してデコードするには、次の手順に従うことができます。

1. JWTトークンを取得:最初に、JWTトークンを取得する必要があります。これは、着信リクエストのヘッダーを解析することで実行できます。トークンが「Authorization」ヘッダーに送信される場合、「承認」キーをキャプチャするスキーマを使用して「Parse json」アクションを使用して抽出できます。次に、変数を作成して、トークンパートのみを保持します(たとえば、「ベアラー」の後)[10]。

2。JWTトークンをデコードします:JWTトークンはbase64urlエンコードです。ロジックアプリで「split」および「base64tostring」関数を使用して、トークンのペイロード部分をデコードできます。 「。」でトークンを分割します。ペイロードを分離するセパレーター。次に、「=」を追加して、長さがベース64デコードの場合は4の倍数であることを確認します。ロジックアプリは、これをbase64文字列に暗黙的に変換し、 `base64toString` [1] [3]を使用してデコードできます。

3。デコードされたペイロードを解析します:ペイロードをデコードした後、JSON文字列があります。別の「Parse json」アクションを使用して、この文字列をロジックアプリで操作できるJSONオブジェクトに変換します。 JWTトークン[3]の予想されるクレームに基づいて、このJSONオブジェクトのスキーマを定義できます。

4.クレームを抽出する:JSONが解析されたら、特定のクレーム(ユーザーIDや電子メールなど)を抽出し、必要に応じてロジックアプリワークフローで使用できます。

このアプローチを使用すると、Azureロジックアプリ内でJWTトークンを直接デコードおよび使用して、Azure関数を作成したり、外部サービスを使用してデコードすることもできません。ただし、トークンを検証する必要がある場合(その署名を確認)、JWT検証が可能なライブラリを備えた外部サービスまたはAzure関数を使用する必要がある場合があります。

引用:
[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-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-management-8211-11-validate-jwt-access-restr/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