使用OAuth2客户端凭据流保护Azure API Management中的后端服务

问题描述 投票:1回答:1

我已部署了.NET Core Web API并通过Azure API Management提供了访问权限。我现在希望使用OAuth2 Client Credentials流保护后端。

我添加了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 Management中使用此流程?我希望Azure API Management能够处理获取令牌并传入标头。

我发现的最接近的是以下文章,但这似乎涉及API传递标头的消费者,这似乎打败了API管理订阅功能的重点

https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad

c# azure-active-directory asp.net-core-webapi openid-connect azure-api-management
1个回答
0
投票

目前,在APIM方面实现这一目标的唯一方法是使用发送请求策略来执行OAuth流程。这将要求您提供APIM客户端ID和密码,但您可以使用命名值来安全地存储它们。

© www.soinside.com 2019 - 2024. All rights reserved.