Защита внутренних служб в Azure API Management с использованием потока учетных данных клиента OAuth2 - PullRequest
1 голос
/ 25 апреля 2019

Я развернул .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 Management? Я хочу, чтобы Azure API Management обрабатывал получение токена и передачу его в заголовок.

Ближайшая найденная мною статья - это следующая статья, но, похоже, она затрагивает потребителя передаваемых заголовков API, что, похоже, лишает смысла функциональность подписки API Management

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

1 Ответ

0 голосов
/ 26 апреля 2019

На данный момент единственным способом сделать это на стороне APIM является использование политики отправки запросов для выполнения потока OAuth. Для этого вам потребуется указать идентификатор клиента APIM и секрет, но вы можете использовать именованные значения для их безопасного хранения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...