我对使用策略在 API 网关内路由流量有疑问。
我希望根据用户 JWT(JSON Web 令牌)中的声明(颁发者)从同一 API 网关端点调用不同的后端服务器。
具体来说,我可以编写一个策略来执行基于 JWT 声明的路由,就像我可以在策略中使用 HTTP 标头一样,还是必须调用 lambda 或 azure 函数,然后通过检查 lambda 中的令牌来调用后端服务?
我们正在尝试将对 API 的访问集中在多个服务器实例上,我们的用例如下所示。你能建议一下吗:-
<policies>
<inbound>
<validate-jwt header-name="Authorization" output-token-variable-name="incoming-jwt">
<issuers>
<issuer>issuer1</issuer>
<issuer>issuer2</issuer>
</issuers>
</validate-jwt>
<set-variable name="issuer" value="@(((Jwt)context.Variables["incoming-jwt"]).Issuer)" />
<choose>
<when condition="@(((string)context.Variables["issuer"]) == "issuer1")">
<set-backend-service backend-id="Backend1" />
</when>
<when condition="@(((string)context.Variables["issuer"]) == "issuer2")">
<set-backend-service backend-id="Backend2" />
</when>
</choose>
<inbound>
...
</policies>