Могу ли я комбинировать AddSignIn () с AddProtectedWebApi () при использовании Microsoft.Indentity.Web для аутентификации? - PullRequest
0 голосов
/ 28 мая 2020

Я нахожусь в процессе настройки клиента SPA, который вызывает службу Api. Используя платформу Microsoft Identity, у меня есть клиент Spa, настроенный в AzureAD для возврата необходимого токена доступа.

На стороне Api у меня есть приложение basi c с домашней страницей, а затем отдельным контроллером api.

Я могу защитить вызовы Api, используя вызов services.AddProtectedWebApi(Configuration) и настроив политику Cors, чтобы разрешать запросы из места, где развернут Spa.

Что я хотел бы иметь возможность при использовании службы Api пользователь должен входить в систему отдельно, поскольку в нем будет несколько экранов мониторинга и запущен Hangfire для управления фоновыми задачами.

Если я сделаю это, добавив 'services.AddSignIn (Configuration)', это должны перезаписывать настройки, сделанные в services.AddProtectedWebApi(Configuration), поскольку вход работает, но вызовы Api не работают, и наоборот.

Есть ли способ использовать и AddSignIn(...), и AddProtectedWebApi(...); возможно, через отдельную Политику аутентификации ...?

1 Ответ

1 голос
/ 02 июня 2020

Да, можно. Просто добавьте это (для аутентификации по умолчанию для ваших контроллеров MVC):

services.AddAuthentication(o =>
{
    o.DefaultAuthenticateScheme = "OpenIdConnect"; 
});

И это в ваших контроллерах Api:

[Authorize(AuthenticationSchemes = "Bearer")] 

Или это (для аутентификации по умолчанию для ваших контроллеров API ):

services.AddAuthentication(o =>
{
    o.DefaultAuthenticateScheme = "Bearer"; 
});

И это в ваших MVC контроллерах:

[Authorize(AuthenticationSchemes = "OpenIdConnect")] 
...