要在逻辑应用程序中检索和解码JWT令牌,您可以按照以下步骤操作:
1。检索JWT令牌:首先,您需要获得JWT令牌。这可以通过解析传入请求的标题来完成。如果令牌是在“授权”标题中发送的,则可以使用``parse json''动作提取``授权''密钥的模式。然后,创建一个变量以仅保存令牌部分(例如,在“承载”之后)[10]。
2。解码JWT令牌:JWT令牌是基本64url编码的。您可以使用逻辑应用程序中的`split'和base64toString'函数来解码令牌的有效负载部分。将令牌拆分为“”。分离器隔离有效载荷。然后,附加“ =”,以确保长度为4的base64解码。逻辑应用程序将隐式将其转换为base64字符串,然后您可以使用`base64ToString' [1] [3]来解码。
3。解析解码的有效载荷:解码有效载荷后,您将有一个JSON字符串。使用另一个“解析JSON”操作将此字符串转换为可以在逻辑应用中使用的JSON对象。您可以根据JWT令牌中的预期索赔来定义此JSON对象的架构[3]。
4。提取索赔:解析JSON后,您可以提取特定的索赔(例如用户ID或电子邮件),并根据需要在逻辑应用程序工作流程中使用它们。
这种方法使您无需创建Azure函数或使用外部服务来解码即可直接在Azure逻辑应用程序中解码和使用JWT令牌。但是,如果您需要验证令牌(检查其签名),则可能需要使用外部服务或具有JWT验证库的Azure功能。
引用:
[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://www.michev.info/blog/post/2140/decode-jwt-access-and-id-tokens-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-your-logic-app-usis-using-api-management-8211-validate-validate-jwt-jwt-access-cess-rester/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-a-logic-app/
[11] https://github.com/auth0/jwt-decode