共用方式為


具備持續存取評估的安全應用程式

本文將協助你作為開發者,透過持續存取評估提升應用程式安全性。 ** 你將學習如何在應用程式中確保零信任支援,當這些應用程式獲得來自 Microsoft Entra ID 的存取權杖授權以存取資源時。

當 Microsoft Entra ID 發出這些存取權杖時,會完整評估 該授權的條件。 Microsoft Entra ID 執行標準授權操作,例如確保 同意,每次發出初始令牌請求時以及刷新令牌時都會進行。

Microsoft Entra ID 主要使用 JSON Web Tokens(JWT)作為存取權杖。 資源 API 可以解碼、驗證並解釋 JWT,而無需每次呼叫資源 API 都回調 Microsoft Entra ID。 JWT 標準定義了 exp claim,指出在到期或之後,不得接受 JWT 代幣進行處理。 預設情況下,Microsoft Entra 代幣會在發出後 60 到 90 分鐘內過期。 確保你的應用程式在 Microsoft Entra ID 不評估授權條件期間,快取並使用存取權杖。

評估發行代幣以外的條件

當 Microsoft Entra ID 發出令牌時,使用者狀態變更與政策變更強制之間可能會出現延遲。 縮短代幣壽命的做法可能會降低使用者體驗與可靠性,卻無法消除風險。

一個解決方案是評估每次呼叫受保護資源的狀況。 一種最常見的強制執行方式是代幣內省。 Token 自省並不使用 JWT 格式作為 Token 的格式。 相反地,token 內省使用一個不透明的字串,資源 API 無法解讀。 資源 API 會在每次呼叫時將憑證傳送給身份提供者。 身份提供者接著檢查任何條件,並回傳資源 API 可用來完成操作的資料。 此過程成本高昂,因為每次 API 呼叫都會新增一個往返的網頁請求。

為了解決此成本,可以透過(CAE),讓資源 API 監聽 Microsoft Entra ID 推送的事件,這些事件關於 Microsoft Entra ID 為資源 API 簽發的存取權杖。 例如,當你的應用程式呼叫 Microsoft Graph API 時,Microsoft Graph 可以檢查是否收到來自 Microsoft Entra ID 的關於該標記的事件。 如果原始驗證條件不同且使用者需要重新驗證,Microsoft Graph 會回傳錯誤給呼叫的應用程式。

當發生以下任一事件時,Microsoft Entra ID 會向支援 CAE 的 Microsoft 資源發送事件:

  • 停用或刪除的使用者帳號
  • 更改或重設使用者密碼
  • 啟用使用者多重驗證
  • 系統管理員會明確吊銷使用者的所有刷新權杖
  • Microsoft Entra ID Protection 偵測使用者風險升高

此外,支援 CAE 的 Microsoft 資源可強制執行基於位置的條件存取政策。

透過 CAE 提升應用程式安全性與韌性

以下基於 Microsoft Entra 持續存取評估影片打造的更安全且韌性的應用程式 ,示範如何打造具備 CAE 支援的客戶端應用程式。

影片簡報說明應用程式如何運用現代認證,以及以下步驟:

  1. App 向 Microsoft 請求身份驗證令牌
  2. 應用程式會收到一個存取權杖
  3. 應用程式呼叫 API / 授權,使用 JWT
  4. 內省
  5. 共用號誌與事件
  6. 重大事件評估
  7. 條件式存取原則評估
  8. 稱為 API 持續存取評估
  9. 索賠挑戰

持續存取評估(Continuous Access Evaluation)使應用程式能夠授權存取超出存取權杖存續期外被撤銷的資源。 例如,一個應用程式有一個代幣,有效期還有 75 分鐘。 使用者因憑證被洩露而處於高風險狀態。 CAE 會阻擋應用程式對資源的存取,要求使用者在繼續前必須重新驗證。 因此,CAE 達成了提升應用程式安全性的主要目標。

由於資源存取權可在代幣有效期之外被撤銷,Microsoft Entra ID 可以發行更長的代幣期限。 對於支援 CAE 的應用程式,Microsoft Entra ID 可以發出有效期限最長 28 小時的令牌。 雖然較長的代幣壽命並未提升應用程式的韌性,但因為應用程式需要更少地請求代幣,降低了應用成本。

CAE 提升應用程式在取得 Microsoft Entra ID 存取權杖時可能遇到問題的韌性。 在可能的情況下,Microsoft Entra ID 會作為包含存取權杖的權杖回應的一部分,發出刷新時間。 Microsoft 認證函式庫(MSAL)利用此刷新時間主動刷新令牌。 刷新時間是代幣到期時間的一小部分(通常是一半)。 只要 MSAL 能在憑證到期前刷新存取權杖,應用程式就能對憑證更新問題有韌性。

例如,當應用程式支援 CAE 時,Microsoft Entra ID 會發出一個令牌,授權該應用程式呼叫 Microsoft Graph,有效期為 24 小時。 Microsoft Entra ID 接著告訴 MSAL 在 12 小時後主動刷新令牌。 如果 MSAL 嘗試刷新存取權杖失敗,因為原本的存取權杖還有效 12 小時,應用程式在從 Microsoft Entra ID 取得權杖時,對問題的韌性會更高。

在您的應用程式中實施持續存取評估

如《 如何在你的應用程式中使用持續存取評估支援的 API》中所述,你的應用程式及其存取的資源 API 都必須啟用 CAE。 然而,準備程式碼使用支援 CAE 的資源,並不阻止你使用未啟用 CAE 的 API。 不使用 MSAL 的應用程式可以新增對 理賠挑戰、理賠請求及客戶端使用 CAE 能力的支援。

下一步