gpt4 book ai didi

azure - 在 Azure API 管理中解密不记名 token 以获取 acr_values

转载 作者:行者123 更新时间:2023-12-05 08:26:14 25 4
gpt4 key购买 nike

是否有任何方法可以解密 API 管理策略中的不记名 token ,以便创建 acr_values 条件,例如租户。

查看 MS 文档,这似乎不可能,我希望实现类似的目标:

        <when condition="@(context.Request.Headers["Authorization"] --DO MAGIC HERE-- .acr_values["tenant"] == "contoso" ">
<set-backend-service base-url="http://contoso.com/api/8.2/" />
</when>

或者类似于此处的示例,但用于设置支持的服务:

http://devjourney.com/blog/2017/03/23/extract-jwt-claims-in-azure-api-management-policy/

我读过的文档: https://learn.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#example-4

https://learn.microsoft.com/en-us/azure/api-management/policies/authorize-request-based-on-jwt-claims?toc=api-management/toc.json#policy

最佳答案

您是否尝试过 .AsJwt() 方法( https://learn.microsoft.com/en-us/azure/api-management/api-management-policy-expressions#ContextVariables ):

<policies>
<inbound>
<base />
<set-header name="tenant" exists-action="append">
<value>@{
var jwt = context.Request.Headers.GetValueOrDefault("Authorization").AsJwt();
return jwt?.Claims.GetValueOrDefault("tenant") ?? "unknown";
}</value>
</set-header>
<choose>
<when condition="@(context.Request.Headers.GetValueOrDefault("tenant", "unknown") == "some-tenant" )">
<set-backend-service base-url="http://contoso.com/api/8.2/" />
</when>
</choose>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>

此外,我不确定您是否需要它作为后端请求的 header ,如果不需要,请考虑使用设置变量策略。

关于azure - 在 Azure API 管理中解密不记名 token 以获取 acr_values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56222808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com