gpt4 book ai didi

api - Azure API 管理 : Oauth2 with backend API

转载 作者:行者123 更新时间:2023-12-04 19:30:10 25 4
gpt4 key购买 nike

我有一个后端 API,想要使用 Azure API 管理进行代理。该后端 API 要求我提供 Bearer Oauth2 token 。我想使用 Azure APIM 为我处理 Oauth2 流,并且我想公开一个非常简单的 API,供客户端应用程序使用。我想避免我的客户端应用程序使用 Oauth2。我该如何使用 APIM 来处理它?我发现很多示例演示如何使用 Oauth2 保护后端 API,但这不是我想要实现的用例。谢谢。

最佳答案

以下是实现此功能的策略片段:

    <send-request ignore-error="true" timeout="20" response-variable-name="bearerToken" mode="new">
<set-url>{{authorizationServer}}</set-url>
<set-method>POST</set-method>
<set-header name="Content-Type" exists-action="override">
<value>application/x-www-form-urlencoded</value>
</set-header>
<set-body>
@{
return "client_id={{clientId}}&resource={{scope}}&client_secret={{clientSecret}}&grant_type=client_credentials";
}
</set-body>
</send-request>

<set-header name="Authorization" exists-action="override">
<value>
@("Bearer " + (String)((IResponse)context.Variables["bearerToken"]).Body.As<JObject>()["access_token"])
</value>
</set-header>

<!-- We do not want to expose our APIM subscription key to the backend API -->
<set-header exists-action="delete" name="Ocp-Apim-Subscription-Key"/>

来自:https://github.com/orangetoken/api-management-policy-snippets/blob/master/Snippets/Add%20Azure%20AD%20OAuth2%20bearer%20token%20to%20request%20to%20AD%20protected%20API.xml

以及 APIM 团队的 APIM 政策片段分支 https://github.com/Azure/api-management-policy-snippets/blob/master/examples/Get%20OAuth2%20access%20token%20from%20AAD%20and%20forward%20it%20to%20the%20backend.policy.xml

关于api - Azure API 管理 : Oauth2 with backend API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44109671/

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