Доступ к XMLHttpRequest по адресу https://login.microsoftonline.com/xxx из источника http://localhost:4200' заблокирован политикой CORS - PullRequest
0 голосов
/ 04 марта 2019

Похоже на повторяющийся вопрос, но не смог его решить.У меня есть угловое 6 приложение, которое использует Msal, чтобы заставить пользователей войти в систему.После успешного входа в систему я делаю запрос к конечной точке aad, передавая учетные данные участника службы (идентификатор приложения и секретный ключ клиента), чтобы получить токен доступа для доступа к graph api, как упоминалось здесь .Это где я получаю ошибку политики CORS.

Когда я отключаю безопасность браузера Chrome, я не получаю никакой ошибки CORS и не могу получить токен доступа.

Почему я получаю ошибку CORS только при попытке получить токен доступа с использованием учетных данных субъекта-службы, а не при входе пользователя в систему с помощью msal?

Нужно ли иметь какой-либо сценарий в конце браузера, чтобы сделатьэто работает?

как мне добиться этого без ущерба для безопасности?

Полномочия для входа: https://login.microsoftonline.com/{tenant id} /

Конечная точка токена для участника службы: https://login.microsoftonline.com/{tenant id} /oauth2/v2.0/token

1 Ответ

0 голосов
/ 05 марта 2019

Обычно традиционные или обычные веб-страницы могут использовать объект XMLHttpRequest для отправки и получения данных с удаленных серверов, но они ограничены одной и той же политикой происхождения.Поэтому браузер блокирует его, так как он обычно позволяет запрос в том же источнике по соображениям безопасности.Хотя Postman может обрабатывать такие запросы, поскольку они не ограничены этой политикой.

Чтобы интегрировать Azure Active Directory в javascript, рекомендуется использовать azure-active-directory-library-for-js , которая представляет собой библиотеку в javascript для внешнего интерфейса, позволяющую легко интегрировать активный каталог Azure с помощью потока неявного предоставления . Она также имеет преимущество, заключающееся в устранении любых требований к вызовам между источниками, которые необходимы, еслиПриложение JavaScript требуется для связи с конечной точкой токена.Вы также можете посмотреть Здесь - это тема, которая обсуждает ту же тему и показывает больше о том, как использовать MSAL.JS, см. Этот раздел.

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

Более подробно вы можете прочитать это:

MSAL Одностраничное приложение

Реализация ADAL

Одностраничное приложение с использованием MSAL для B2C

Спасибо.

...