gpt4 book ai didi

azure - 更改已在使用的 APIM 订阅 key header 名称

转载 作者:行者123 更新时间:2023-12-03 02:17:05 25 4
gpt4 key购买 nike

我们目前正在为 Azure APIM 订阅使用默认的 Ocp-Apim-Subscription-Key header 名称,并且有相当多的人在生产中使用它。我们希望在不破坏任何现有集成的情况下改变这一点,例如添加对履行相同角色的第二个 ApiKey header 的支持,直到我们可以逐步淘汰默认的 APIM header 。

Azure 仅提供更改现有选项的选项 - 在我们的案例中这将是一项重大更改。我们如何安全地弃用此 header ,转而使用更具可读性的 header ?

最佳答案

不幸的是,这并不是一件小事。但有一个办法。如果您更改 API 的订阅 key header 名称,则任何带有旧 header 的请求都将产生 401 响应。您可以在 API 的错误部分拦截该内容,并检查旧 header 名称是否存在,如果存在,则重新发出请求。大致如下:

<on-error>
<base />
<choose>
<when condition="@(context.Response.StatusCode == 401 && context.Request.Headers.ContainsKey("OCP-APIM-Subscription-Key"))">
<send-request mode="copy" response-variable-name="response">
<set-url>@{
var urlParts = context.Request.OriginalUrl.ToString().Split('/');
urlParts[2] = "127.0.0.1"; //Overriding host to keep request local, but Host header also need to be reset to make SSL work
return string.Join("/", urlParts);
}</set-url>
<set-header name="Host">
<value>@(context.Request.OriginalUrl.Host)</value>
</set-header>
<set-header name="ApiKey">
<value>@(context.Request.Headers.GetValueOrDefault("OCP-APIM-Subscription-Key"))</value>
</set-header>
</send-request>
<return-response response-variable-name="response" />
</when>
</choose>
</on-error>

关于azure - 更改已在使用的 APIM 订阅 key header 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70708675/

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