我有一个后端API,我想通过使用Azure API Management进行代理。 这个后端API需要我提供一个Bearer Oauth2标记。 我想使用Azure APIM为我处理Oauth2流程,并且我想公开一个将被客户端应用程序使用的非常简单的API。我想避免我的客户端应用程序使用Oauth2。 我该如何处理APIM?我发现很多示例演示了如何使用Oauth2保护后端API,但这不是我尝试实现的用例。 谢谢。Azure API管理:Oauth2与后端API
1
A
回答
0
您需要做的是添加一个标头来请求 - 使用set-header策略将授权标头设置为所需的值。如果您可以在策略中硬编码令牌,那将很好。
如果你不能 - 你必须使用发送请求来组织OAuth流策略。简而言之,您要做的是将您的应用ID和密码发送给OAuth端点,并解析其响应以获取令牌并将其附加到请求。
1
这里是一个政策片段,使这项工作:
<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"/>
很快从APIM团队APIM政策片断分公司
相关问题
- 1. Azure API管理 - API端点域与实际API URL
- 2. 使后端API仅可通过Azure API管理访问
- 3. Azure API管理和ASMX/WSDL SOAP端点?
- 4. Azure API管理服务API创建
- 5. Azure API管理REST API用户
- 6. 使用Azure API管理创建API
- 7. Azure API管理和HMAC
- 8. Azure API管理响应404
- 9. Azure API管理至VNet
- 10. Azure API管理密钥
- 11. Azure api管理SOAP-To-REST
- 12. WSO2 API管理器后端url
- 13. 保护在Azure的API管理所有的API与AD
- 14. 使用Azure AAD对Azure服务管理API进行身份验证OAuth2
- 15. 与WSO2 API管理
- 16. OAuth2与雅虎API
- 17. 当Azure Active Directory Oauth2 V2.0端点将提供将支持Azure资源管理器API的access_code时?
- 18. 我可以使用azure oauth2客户端凭据流访问经典的azure服务管理rest api吗?
- 19. 后端https服务器如何与WSO2 API管理器连接
- 20. 在Azure Api管理中保护WebApi
- 21. Azure API管理订阅到期
- 22. Azure管理API产生403错误
- 23. Azure管理API中的验证问题
- 24. Azure服务管理api更改配置
- 25. Azure API管理 - 范围声明NULL
- 26. 用于.Net的Azure服务管理API
- 27. 通过Azure API管理流式传输
- 28. Azure Api管理中的可选参数
- 29. 使用Azure资源管理器REST API