2017-03-09 35 views
0

我已經在Azure中設置了兩個Web應用程序,並且均由Azure AD驗證支持。 一個是前端,另一個是API後端。在他們自己的作品中打開每個頁面(登錄屏幕),但前端對後端的呼叫導致被CORS策略阻止。消息是:兩個Web應用程序之間的Azure驗證

XMLHttpRequest無法加載hxxps://backend.azurewebsites.com/api。從hxxps://backend.azurewebsites.com/api重定向到hxxps://login.windows.net/94 ...已被CORS策略阻止:沒有'Access-Control-Allow-Origin'標題存在於請求的資源。原因'hxxps://frontend.azurewebsites.net'因此不被允許訪問。

電話可以撥出如下:

$.ajax({ 
      type: type, 
      dataType: 'json', 
      url: server + '/' + url, 
      crossDomain: true, 
      xhrFields: { 
       withCredentials: true 
      }, 
      data: data 
      } 
     }); 

回答

0

的API不應該被送回當呼叫是未經驗證的重定向。調用者無法做任何有用的事情。

相反,您應該在API上設置Azure AD承載標記身份驗證,其中Audience設置爲API客戶端ID,Tenant設置爲您的Azure AD租戶標識/域名。

然後,您的前端應以某種方式獲取API的訪問令牌,並將其附加到所有打往它的調用。有多種方法可以做到這一點。

在這裏您可以找到示例單頁應用程序:https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp

更多示例應用程序在這裏:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-code-samples

+0

謝謝,明白了! :) – RunicSheep

相關問題