У меня есть веб-приложение, которое реализует контроллеры 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) с использованием того же механизма авторизации, что:
- Аутентифицируется на Microsoft AzureУчетные записи AD
- Может использоваться клиентами рабочего стола
- Может использоваться предыдущими страницами веб-приложения для отображения динамического содержимого.