Как авторизовать сервис для вызова API с помощью Azure Active Directory? - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть служба, которая получает токен доступа из Azure AD.У меня есть API, который я хотел бы принять этот токен в качестве авторизации.

Мой сервисный код для вызова API -

HttpClient client = new HttpClient()
{
  BaseAddress = new Uri("https://localhost:44372/")
};

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, client.BaseAddress + "api/todolist");
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
HttpResponseMessage response = await client.SendAsync(request);

Ответ, который я получаю, - 401 - Unauthorized.

У меня такое ощущение, что проблема в функции API ConfigureServices;в частности (это было взято из примера, поэтому я пока не знаю, что это значит):

services.Configure<JwtBearerOptions>(AzureADDefaults.JwtBearerAuthenticationScheme, options =>
{
    options.TokenValidationParameters.RoleClaimType = "roles";
});    

Я новичок в Azure и аутентификации в целом, поэтому не знаю, какие есть вариантыдоступно или уместно.Я также не уверен, как настроить приложения в Azure, чтобы разрешить это.У меня есть идентификатор приложения службы, настроенный как авторизованное клиентское приложение API;он также указан в известных клиентских приложениях в манифесте API.

Нужно повернуть так много ручек, что я не знаю, куда идти дальше.Если кто-нибудь может дать мне знать, что можно попробовать, это будет замечательно.

Спасибо

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