[英]Securing Back end services in Azure API Management using OAuth2 Client Credentials flow
我已经部署了.NET Core Web API,并通过Azure API管理提供了访问。 现在,我希望使用OAuth2客户端凭据流来保护后端。
我添加了Azure AD身份验证,如下所示:
services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
.AddAzureADBearer(options =>
{
Configuration.Bind("AzureAd", options);
});
我已经在Azure AD中创建了应用注册和客户端密钥,并通过使用下面的代码创建令牌并调用API来确认它正在运行。
var clientCred = new ClientCredential(clientId, clientSecret);
var result = await authContext.AcquireTokenAsync(resource, clientCred);
return result.AccessToken;
是否可以在Azure API管理中使用此流程? 我希望Azure API管理来处理获取令牌并传入标头。
我发现的最接近的是下面的文章,但这似乎涉及API传递标头的使用者,这似乎使API Management订阅功能失去作用
https://docs.microsoft.com/zh-CN/azure/api-management/api-management-howto-protect-backend-with-aad
目前,在APIM端执行此操作的唯一方法是使用send-request策略执行OAuth流。 这将需要您提供APIM客户端ID和密码,但是您可以使用命名值来安全地存储它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.