Различные методы аутентификации для контроллеров MVC и WebAPI (Cookies + Bearer) с использованием Microsoft Identity Platform - PullRequest
2 голосов
/ 31 мая 2019

У меня есть веб-приложение, которое реализует контроллеры MVC и контроллеры webapi.Это веб-приложение использует проверку подлинности учетной записи Microsoft на основе внешних файлов cookie.

Теперь я хочу запросить веб-интерфейс из собственного (настольного) приложения, использующего MSAL, для проверки подлинности пользователей на платформе идентификации Microsoft.

Я попытался сделать это, добавив следующий код для использования аутентификации на предъявителя: app.UseWindowsAzureActiveDirectoryBearerAuthentication( new WindowsAzureActiveDirectoryBearerAuthenticationOptions { Tenant = ConfigurationManager.AppSettings["ida:Tenant"], TokenValidationParameters = new TokenValidationParameters { ValidAudience = ConfigurationManager.AppSettings["ida:Audience"] } });

Я могу аутентифицировать клиента с помощью метода PublicClientApp.AcquireTokenInteractive и использовать полученный AccessToken для составления заголовка авторизации., но веб-приложение отвечает кодом ошибки 401.

 request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
 var response = httpClient.SendAsync(request).Result;

Таким образом, цель состоит не в том, чтобы одновременно использовать файлы cookie и проверку подлинности на носителе, а в создании уникального веб-приложения, использующего MVC, которое:

  • Может обслуживать веб-страницы с помощью механизма авторизации
  • Может публиковать API на основе REST (через WebAPI) с использованием того же механизма авторизации, что:
    1. Аутентифицируется на Microsoft AzureУчетные записи AD
    2. Может использоваться клиентами рабочего стола
    3. Может использоваться предыдущими страницами веб-приложения для отображения динамического содержимого.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...