Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 如何在逻辑应用中解码JWT令牌


如何在逻辑应用中解码JWT令牌


可以在Azure逻辑应用中解码JWT令牌,而无需使用Node.js或C#之类的外部库。这是一种逐步的方法:

1。提取JWT令牌:首先,您需要从传入请求中提取JWT令牌。这通常在请求的“授权”标题中找到。

2。拆分JWT令牌:JWT令牌由三个部分组成,这些部分由点分开:标题,有效载荷和签名。您需要通过这些点将令牌分开,以隔离有效载荷,其中包含用户详细信息。

3。解码有效载荷:有效载荷是基本64url编码。您可以在逻辑应用中使用`base64ToString“函数进行解码。但是,您需要确保将base64字符串正确填充“ =”,以使其长度为4的倍数。

4。ParseJSON:一旦解码,有效载荷将是JSON字符串。在逻辑应用程序中使用`json'函数将此字符串解析为可以使用的JSON对象。

这是逻辑应用中可能看起来的简化示例:

- 拆分jwt令牌:使用``split(triggerbody()?['授权'],。')的表达式'split令牌。
- 解码有效载荷:附加“ =”以确保正确的填充,然后使用`base64ToString'对其进行解码。
- 解析JSON:使用“ JSON”功能来解析解码的有效载荷。

对于更可重复使用的方法,请考虑创建专门用于解析JWT代币的儿童逻辑应用程序,如[3]中所述。这使您可以轻松地将JWT解析集成到多个逻辑应用程序中。

如果您需要验证令牌(检查其签名),则通常会使用外部服务或库,因为逻辑应用程序不本质地支持JWT验证。但是,对于仅提取未经验证的索赔,上述步骤就足够了。

引用:
[1] https://stackoverflow.com/questions/54257879/how-to-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-isus-jwt-with-with-graphql
[5] https://techcommunity.microsoft.com/blog/azuredevcommunityblog/part-4-secure-your-your-logic-app-usis-using-api-management-8211-validate-validate-jwt-jwt-access-rester/336802
[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-a-logic-app/
[11] https://www.reddit.com/r/azure/comments/u4alct/blog_parse_jwt_token_with_with_azure_azure_logic_apps/