Включить CORS для приложения веб-интерфейса Azure Rest - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть простая страница jQuery, которая вызывает Azure Restful API для получения статуса виртуальных машин.Я сталкиваюсь с проблемой, что он жалуется на Cross-Origin Resource Sharing , и я не могу найти, где его установить для имеющегося у меня веб-приложения / API.

Я использую учетные данные клиента предоставляют для получения токена https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth2-client-creds-grant-flow

Я закончил тестирование, и когда я попытался выполнить вызовы из jQuery / JS, у меня возникла проблема с CORS.

Моя настройка: на портале Azure я использовал регистрацию приложений, чтобы зарегистрировать приложение типа «Веб-приложение / API», присвоить ему адрес домашней страницы «это место, где он живет», создал ключ.

Использование

POST https://login.microsoftonline.com/<tenant id>/oauth2/token
grant_type=client_credentials
client_id=application id
client_secret=application key
resource=https://management.core.windows.net/

Я что-то пропустил?мой поиск ведет меня к размещенным приложениям Azure

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Хорошо, вот как это сделать вкратце:

  1. Добавление функции приложения (плата за запрос)
  2. Открыть вновь созданное приложение-функцию
  3. В Proxies выберите это из правого списка
  4. Дайте ему имя, шаблон маршрута будет вашим новым URL-адресом конечной точки, Backend URL является вашей конечной точкой входа в систему, например: https://login.microsoftonline.com//oauth2/token
  5. После этого вернитесь в свое функциональное приложение, выберите вкладку функций платформы, выберите CORS, удалите все из них и введите URL своего приложения или просто *

Вы можете быть более конкретным с ними, но этого достаточно, чтобы получить токен. И все остальные конечные точки не имели проблемы с CORS.

Удачи.

0 голосов
/ 14 ноября 2018

Вы не можете использовать секрет клиента из внешнего интерфейса Javascript.Ваш клиентский секрет будет общедоступным, в основном это пароль вашего приложения.

Предоставление учетных данных клиента предназначено для внутренних приложений.

Вам необходимо использовать, например, поток неявного предоставления с ADAL.JS / MSAL.JS приобретать токены.Ваше интерфейсное приложение также должно быть зарегистрировано как Native, поскольку оно является общедоступным клиентом.

Вот пример приложения: https://github.com/Azure-Samples/active-directory-javascript-singlepageapp-dotnet-webapi

Oh, и ошибка CORS происходит из токена Azure ADконечная точка.Вы ничего не можете с этим поделать.

...