Авторизация учетных данных клиента с помощью Azure Active Directory и Swagger

Необходимо получить токен авторизации для доступа к моему приложению, работающему на localhost. Я запрашиваю конечную точку токена AAD для токена от клиента Swagger OAuth2 в UseSwaggerUi3. Я получаю сообщение об ошибке CORS о том, что конечная точка не разрешает запросы перекрестного происхождения от моего локального хоста. Как я могу это исправить?

[Править] Я могу получить токен, если отправлю запрос POST к той же конечной точке с помощью Fiddler.

2 ответа

Вы не можете использовать поток учетных данных клиента из внешнего интерфейса. Во-первых, потому что ваш секрет виден любому, кто видит страницу.

Во-вторых, потому что Azure AD блокирует перекрестные запросы к конечной точке токена. (как вы видели)

Вам необходимо использовать код авторизации или неявный поток с пользовательским контекстом. Или создайте другой API, который получает токен в серверной части и вызывает другой API вместе с ним.

CORS - это ресурс перекрестного происхождения, он позволяет двум различным веб-приложениям, работающим в двух разных источниках, обмениваться данными друг с другом. Есть два способа включить cors 1) перейти на azure - веб-приложения - настройка поиска по столбцу - cors. 2) добавьте новый заголовок cors как "*", что означает, что он разрешит все URL-адреса, запрашивающие веб-приложение, вы также предоставите конкретный URL-адрес. 3) сохранить его. 4) второй подход - разрешить заголовок cors из вашего кода в заголовках веб-конфигурации.

Другие вопросы по тегам