您有一個單頁應用程式 (SPA),它會呼叫 Azure App Service Web API (API A)。API A 必須代表已登入的使用者呼叫下游 API (API B),並在 API B 中強制執行使用者的權限。API B 已在其應用程式註冊中公開範圍 (scope)。您需要在呼叫 API B 時保留使用者身分,並避免授予 API A 廣泛的應用程式權限。您應該執行哪兩個動作?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 在 API A 中,使用 MSAL 透過呼叫 AcquireTokenOnBehalfOf 並將傳入的 bearer token 作為 UserAssertion,將傳入的使用者 token 交換為下游 token,然後將該 token 傳送至 API B。, 在 Azure AD 中,將 API B 作為委派權限新增至 API A 的應用程式註冊,並授予所需範圍的管理員同意。.
為什麼這是答案
要讓 API A 代表使用者呼叫 API B 並保留使用者身分,需要實作 OAuth 2.0 的 On-Behalf-Of (OBO) 流程。首先,在 Azure AD 中,必須將 API B 的委派權限(範圍)新增到 API A 的應用程式註冊中,並授予管理員同意,這允許 API A 代表使用者請求這些權限。接著,在 API A 的程式碼中,使用 MSAL 函式 AcquireTokenOnBehalfOf,將來自前端 SPA 的使用者 bearer token 作為 UserAssertion 傳入,以交換一個新的 token。這個新 token 包含了呼叫 API B 所需的委派權限,並保留了原始使用者的身分。API A 隨後將此 token 附加到呼叫 API B 的請求中。 選項「將 API A 變更為使用用戶端認證流程」不正確,因為用戶端認證流程是應用程式本身的身分,無法保留使用者身分。選項「將 API B 設定為需要應用程式角色而非範圍」不正確,因為應用程式角色是應用程式層級的授權,無法替代委派權限來代表使用者呼叫下游 API,且仍需 token 獲取。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡