您有一個 ASP.NET Core 網路應用程式,使用 Microsoft.Identity.Web 登入使用者並取得權杖以呼叫下游 API。該應用程式在負載平衡器後方的多個 App Service 實例上執行,並且經常擴展。使用者被要求登入的頻率超出預期,並且在擴展事件後,AcquireToken 呼叫頻繁地命中網路。您應該實作什麼來改善跨實例的權杖重用?請選擇兩項。
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 設定 Microsoft.Identity.Web 使用 AddDistributedTokenCaches,並以 Azure Cache for Redis 作為 IDistributedCache 提供者。, 實作 MSAL 權杖快取序列化到共享儲存(例如 Redis 或 SQL),用於機密客戶端流程和使用 MSAL 擴展的 Web API。.
為什麼這是答案
當應用程式在多個實例上運行時,預設的記憶體中權杖快取無法在這些實例之間共享權杖。這導致使用者在切換實例時被重複要求登入,並且 AcquireToken 呼叫頻繁地命中網路。 選項 B 和 C 都解決了這個問題。選項 B 建議使用 AddDistributedTokenCaches 搭配 Azure Cache for Redis。這允許所有應用程式實例共享一個集中的權杖快取,從而減少重複登入和網路呼叫。選項 C 建議將 MSAL 權杖快取序列化到共享儲存(例如 Redis 或 SQL)。這也是一種實現集中式權杖快取的方法,確保所有實例都能存取相同的權杖資訊。 選項 A 雖然嘗試透過黏性會話來解決問題,但它並不能真正實現跨實例的權杖重用,並且在擴展事件後,黏性會話可能無法維持。選項 D 禁用權杖快取會導致每次需要權杖時都進行網路呼叫,這會顯著降低效能並增加網路流量,與改善權杖重用的目標背道而馳。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡