Я добавляю аутентификацию ADFS на веб-сайт Angular SPA с задним концом WebApi. Для этого я настроил экземпляр ADFS с клиентом и RP.ADFS 3 OAuth 2 Ошибка CORS
Для входа в SPA пользователь перенаправляется в конечную точку sts.domain/adfs/oauth2/authorize. Пользователь аутентифицируется на веб-странице и перенаправляется на страницу в приложении - www.domain/token/redirect.html? Code = SOMECODE & state = URL
Эта страница извлекает токен из параметров URL и вызывает sts .domain/adfs/oauth2/token endpoint, чтобы получить токен JWT для задней части WebApi.
var url = "https://sts.domain/adfs/oauth2/token";
$.ajax(url, {
type: "POST",
data: {
grant_type: "authorization_code",
client_id: client,
redirect_uri: redirect,
code: token
}
})
Приложение затем сохраняет WebAPI маркера и добавляет его к Угловой $ http.defaults.headers.common.Authorization так, что он будет использоваться для связи с WebAPI бэкэндом. Затем он перенаправляется обратно в SPA.
Это все работает корректно в IE, но в Firefox и Chrome не удается выполнить стандартное сообщение об ошибке CORS при вызове конечной точки OAuth.
Нет заголовка «Контроль доступа-Разрешить-Происхождение» присутствует на запрошенном ресурсе. Origin 'https://www.domain', следовательно, не допускается.
Похоже, что я должен добавить URL-адрес SPA к конфигурации CORS экземпляра ADFS, но я не могу найти способ настройки конфигурации CORS для экземпляра ADFS. Как настроить CORS в ADFS 3.0 OAuth? Есть ли другой способ выполнить эту задачу, более стандартную?
Вы настроили поддержку Cors в вашем webapi-сервере? Я был бы очень удивлен, если бы это требовало изменения в adfs. – DavidEdwards