2017-07-21 57 views
0

我有一個SPA應用程序和一個從中獲取數據的關聯API。 (Aurelia和Nodejs)兩個Azure Web應用程序可以使用相同的令牌進行身份驗證嗎?

我最近在SPA上設計了身份驗證,以便它使用MSAL來對照我們公司的AAD對用戶進行身份驗證,並且能夠檢索該應用程序可以用來訪問MS Graph的令牌好。

但是,我也希望我的API對AAD進行身份驗證。我希望API能夠接受來自SPA客戶端的令牌。

雖然我能夠從客戶端令牌發送到API(Authorization: 'Bearer'...)我不知道怎麼用它做在服務器端則與身份提供令牌是有效的驗證。

在大多數情況下,我不希望API有UI的關注(即驗證/登錄屏幕)。它應該簡單地拒絕不攜帶正確的令牌的任何請求。

我希望最終將客戶端和服務器應用程序都作爲Azure上的App Services託管,但暫時將它們託管在內部。我認爲有一種方法可以確保解決方案無論應用程序託管在哪裏,離子都可以工作。

感謝您的幫助!

回答

0

我不確定我是否理解標題和問題主體之間的關係:我將回答正文:) 在https://azure.microsoft.com/en-us/resources/samples/active-directory-b2c-javascript-msal-singlepageapp/中,您可以看到Node JS中的Web API令牌驗證示例。服務端邏輯只需要進行調整以指向您正在使用的Azure AD租戶。 鑑於參數​​被驗證都是關於邏輯標識符的,所以無論API託管的位置如何,以上都將工作。

+0

您提供的鏈接是關於註冊應用程序的說明。我對這個詞感到困惑。我可以在我的租戶中註冊一個應用程序,但也有一個Azure應用程序註冊門戶(https://apps.dev.microsoft.com/#/appList),它在很多不同的文檔和示例中都有引用。如何知道在哪個地方註冊應用程序? – RHarris

+0

我鏈接到示例,以便您可以查看節點js中的令牌驗證代碼,我並不建議您應該更改您的註冊設置。如果您使用MSAL並按照您的問題所述調用圖表,我假設您在apps.dev.microsoft.com中註冊了您的應用程序;你不應該在這方面改變任何東西。 – vibronet

+0

謝謝。我仍然試圖讓自己的思緒籠罩在所有這些,但我認爲你的樣本正在幫助我到那裏。 – RHarris

相關問題