首页 > 解决方案 > 根据特定的 JWT 声明将请求转发到区域 API

问题描述

是否可以根据特定的 JWT 声明将请求转发到区域 API?

我正在开发的平台每个区域都有一个 API,我们的客户需要知道它才能构建基本请求 URL - 例如:https://{region}.service.com

不幸的是,在我们的场景中,尝试找出从 Azure APIM 自动调用哪个区域 api(例如:在https://api.service.com调用单个端点)的唯一可靠方法是分析以下声明:总是带有不记名令牌(我们已经在 APIM 级别这样做了。)

有没有人需要这样做?提前致谢!

标签: azureazure-api-management

解决方案


APIM 策略表达式以及“选择”策略允许您创建任意处理逻辑:https ://docs.microsoft.com/en-us/azure/api-management/api-management-policy-expressions 。

可以访问 JWT

context.Request.Headers.GetValueOrDefault("Authorization").AsJwt()

它返回 Jwt 对象(在上面的同一页面上查找它的属性)。

所有这些与“set-backend-service”策略相结合应该足以完成这项工作。


推荐阅读