簡體   English   中英

為Azure Rest Webapi應用程序啟用CORS

[英]Enable CORS for Azure Rest webapi application

我有一個簡單的jQuery頁面,該頁面調用Azure靜態API來獲取VM的狀態。 我遇到了一個問題,那就是它抱怨跨域資源共享,而我找不到在哪里為我擁有的Web應用程序/ API設置它。

我正在使用客戶端憑據授予來獲取令牌https://docs.microsoft.com/zh-cn/azure/active-directory/develop/v1-oauth2-client-creds-grant-flow

我已經完成測試,當我嘗試從jQuery / JS進行調用時遇到了CORS問題。

我的設置涉及:從Azure門戶,我使用應用程序注冊來注冊類型為“ Web應用程序/ 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托管應用

不能使用前端Javascript中的客戶端機密。 您的客戶秘密將是公開的,基本上是您應用程序的密碼。

客戶端憑據授予適用於后端應用程序。

您需要使用ADAL.JS / MSAL.JS等隱式授予流來獲取令牌。 您的前端應用也是公共客戶端,因此也應注冊為Native。

這是一個示例應用程序: https : //github.com/Azure-Samples/active-directory-javascript-singlepageapp-dotnet-webapi

哦,CORS錯誤來自Azure AD的令牌終結點。 您對此無能為力。

好的,這是簡短的說明:

  1. 添加功能應用程序(按請求收費)
  2. 打開新創建的功能應用程序
  3. 在代理中,從右側列表中選擇
  4. 給它起一個名字,路由模板將是您的新端點URL, 后端URL是您的登錄端點,例如: https ://login.microsoftonline.com/ / oauth2 / token
  5. 之后,返回您的功能應用程序,選擇平台功能選項卡,選擇“ CORS”,將其全部刪除,然后輸入您的應用程序URL或一個*

您可以更具體地說明這些,但這足以獲取令牌。 並且所有其他端點都沒有CORS問題。

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM