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



我已经部署了一个.NET Core Web API,并通过Azure API Management提供了访问权限。我现在希望使用 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 管理订阅功能的重点

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

目前,在 APIM 端执行此操作的唯一方法是使用 send-request 策略来执行 OAuth 流。这将需要您提供 APIM 客户端 ID 和密钥,但您可以使用命名值来安全地存储它们。

最新更新