ADFS 2016 - проблема CORS для конечной точки обнаружения OpenID Connect
Я пытаюсь настроить наш Angular SPA + .ASPNET Core API с ADFS (локально), чтобы избавиться от аутентификации Windows. В конечном итоге целью будет:
- Angular SPA - > Перенаправляет пользователя в ADFS и получает обратно id_token
- Angular SPA - > использует этот токен для вызова API
- Angular SPA - > Время от времени обновляет токен
Angular SPA и API правильно настроены в ADFS. Я использую angular-oauth2-oidc для настройки spa.
Проблема заключается в следующем: при загрузке SPA я получаю ошибку CORS, когда SPA пытается достичь конечной точки обнаружения OpenId (.well-known/openid-configuration
). Поэтому я даже не могу перенаправить пользователя в ADFS. Ничего не работает
Я много смотрел в Интернете и только нашел много других людей, которые говорили, что ADFS не поддерживает CORS. Кажется странным, хотя. Microsoft утверждает, что они поддерживают одностраничные приложения, поэтому вы уже более или менее предполагаете, что ADFS будет получать запросы CORS.
Кто-нибудь еще сталкивался с этой проблемой? Серьезно, что Microsoft реализовала это и не смогла разрешить запросы CORS?
Изменить: Я также попытался создать обертку вокруг adal.js. Мне удалось перенаправить пользователя в ADFS, авторизоваться и получить id_token. Проблема в том, что sts возвращает aud
Заявка на спа в токене, а не на API. Когда SPA использует токен для вызова API, он, как и ожидалось, завершается ошибкой. Такое ощущение, что я зашел в тупик на этом.
1 ответ
Невозможно в ADFS 2016, не решено в ADFS 2018 (пока).
Джефф