使用持續存取評估保護應用程式
本文可協助您身為開發人員,使用持續存取評估來改善應用程式安全性。 您將瞭解如何確保應用程式中 零信任 支援,這些支援會在他們從 Microsoft Entra ID 取得存取令牌時,接收存取資源的授權。
當 Microsoft Entra ID 發出這些存取令牌時,它會完整評估 該授權的條件。 Microsoft Entra ID 會執行標準授權動作,例如 確保同意,每次發行初始令牌要求的令牌,以及重新整理令牌時。
Microsoft Entra ID 主要使用 JSON Web 令牌 (JWT) 進行存取令牌。 資源 API 可以在每次呼叫資源 API 時,譯碼、驗證及解譯 JWT,而不需要在每次呼叫資源 API 時呼叫 Microsoft Entra ID。 JWT 標準會定義 exp 宣告,以識別您不得接受 JWT 令牌進行處理的在到期時間或之後。 根據預設,Microsoft Entra 令牌會在問題發生后 60 到 90 分鐘到期。 您的應用程式必須快取並使用存取令牌,在此期間,Microsoft Entra ID 不會評估授權條件。
評估發行令牌以外的條件
當 Microsoft Entra ID 發出令牌時,Microsoft 客戶擔心使用者條件變更與原則變更強制執行之間的延遲。 這種降低的令牌存留期方法可能會降低用戶體驗和可靠性,而不會消除風險。
其中一個解決方案是評估受保護資源的每個呼叫的條件。 實作此強制執行的最常見方式是令牌反省。 令牌內省不會針對令牌使用 JWT 格式。 相反地,令牌反省會使用資源 API 無法解譯的不透明字串。 資源 API 會在每次呼叫時,將令牌傳送至識別提供者。 識別提供者接著會檢查是否有任何條件,並傳回資源 API 可用來完成作業的數據。 此程式的成本可能很高,因為它會將另一個來回 Web 要求新增至每個 API 呼叫。
若要使用 持續存取評估 來補救此費用,資源 API 可以接聽 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 Continuous Access Evaluation 影片所建置的更安全且具彈性的應用程式示範如何透過 CAE 支援建置用戶端應用程式。
觀看上述簡報,以瞭解應用程式在搭配下列步驟使用新式驗證時的運作方式:
- 應用程式在使用新式驗證時的運作方式
- 應用程式會向 Microsoft 身分識別要求令牌
- 應用程式會收到存取令牌
- 應用程式使用 JWT 呼叫 API/授權
- 反思
- 共用訊號和事件
- 重大事件評估
- 條件式存取原則評估
- 呼叫 API 持續存取評估
- 宣告挑戰
持續存取評估可讓應用程式的授權存取存取令牌存留期外撤銷的資源。 例如,應用程式有一個令牌,其有效期為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。
下一步
- Microsoft Entra ID 中工作負載身分識別的持續存取評估說明組織的 CAE 安全性優點。
- 使用持續存取評估將 零信任 原則套用至驗證會話管理,說明如何保護驗證會話,而不會影響用戶體驗和生產力,以及現代化會話管理。
- 增加您開發的驗證和授權應用程式的復原能力,引進了一系列文章,提供使用 Microsoft 身分識別平台 和 Microsoft Entra 識別符增加應用程式中復原能力的指導。 它們包含使用令牌和呼叫資源的最佳做法。
- 使用身分識別 零信任 方法來建置應用程式,提供許可權和存取最佳做法的概觀。
- 將應用程式與 Microsoft Entra 識別碼和 Microsoft 身分識別平台 整合,可協助開發人員建置及整合 IT 專業人員在企業中可保護的應用程式。