1

我打算開發一個具有Web API作爲後端的單頁面應用程序,它將代表用戶調用其他一些Web API。但我正在努力如何做到這一點。Azure AD:將SPA與委派的用戶身份場景混合使用

我從MS看過這個list of Azure AD scenarios,但沒有一個看起來適合我的情況。我想我的場景是SPA和從該鏈接的「Web應用程序到Web API」場景的混合體。

根據我的理解,我必須先完成SPA客戶端首先從Azure AD Auth端點檢索授權碼和ID令牌,然後將它們發送到我的後端。然後,後端將向Azure AD令牌端點請求所需的訪問令牌。

這是正確的嗎?但我怎麼能做到這一點(與adal.js)?我只找到使用隱式流程的客戶端的示例,其中獲取授權代碼被跳過,並直接以訪問令牌結束。這可能嗎?

回答

1

你的理解非常接近。在Azure Portal中配置場景後(請參閱code sample以獲取有關配置場景的幫助),您將登錄用戶並向Web API請求訪問令牌。然後,當Web API收到此訪問令牌時,它可以向Azure AD執行On-Behalf-Of request請求訪問下游Web API。成功之後,Azure AD將向Web API發佈一個新的訪問令牌,可用於下游API。

就支持而言,單頁面應用程序需要使用ADAL.js來登錄用戶並獲取訪問令牌。在Web API方面,Azure AD通過ADAL .NET和ADAL Java支持On-Behalf-Of flow。一個細微差別是你可能想要保護你的web API上的端點和驗證令牌,Azure AD已經爲.NET構建了OWIN中間件,但是需要一個與Java web API相同的開源代碼。

Here是一個在行動流程中的典型示例。它有一個單頁面應用程序和一個調用.NET Web API的本地應用程序。

+0

我認爲這正是我需要的。非常感謝Daniel! – Jer

相關問題