跳轉至

Conditional Access

概述

Conditional Access(條件式存取)是 microsoft-entra-id 中的一項進階身份驗證功能,旨在根據用戶的特定情境執行存取控制策略。此功能主要包含於 microsoft-entra-id 的 P1 與 P2 授權層級中,不包含在免費版內。

Conditional Access 透過「如果 (IF) 則 (THEN)」的邏輯結構運作,幫助企業定義存取規則,例如:「若登入來源非香港 IP,則必須強制進行 MFA 多重驗證」或「若偵測到裝置不符合規範,則拒絕存取」。

運作機制

Conditional Access 的決策通常基於多個變數:

  • 使用者風險:結合 identity-protection 分析帳戶是否異常。
  • 裝置狀態:檢查裝置是否受管理或合規。
  • 地理位置:限制特定國家或地區的存取。
  • 應用程式:針對特定 n8n、Nextcloud 或 OpenWebUI 等應用設定存取層級。

透過與 Cloudflare Zero Trust 的整合,可以將這些條件擴展至 docker 容器化服務,實現接近企業級的零信任架構。

企業應用場景

在現代資訊安全架構中,Conditional Access 經常被用於以下場景:

  1. 地區與網路限制:僅允許特定網段或地理區域的請求。
  2. 多重驗證強化 (MFA):針對敏感應用強制要求 Microsoft Authenticator 或 passkey
  3. 封鎖舊式驗證:自動封鎖不支援現代驗證協定的遺留系統。
  4. 基於風險的驗證:利用 microsoft-entra-id P2 的 identity-protection,當偵測到異常登入(如新裝置或異地登入)時,自動觸發強制密碼重設或驗證。

與其他工具的整合

對於自建服務環境,建議採用多層防禦策略:

  • 第一層:使用 cloudflare-tunnel 隱藏來源 IP,並配合 Cloudflare Zero Trust Access 作為門戶保安。
  • 第二層:以 microsoft-entra-id 作為統一的 Identity Provider (IdP),強制執行 passkey 驗證。
  • 第三層:內部應用可透過 authentik 進行細部的群組權限管理,互補 microsoft-entra-id 在管理上的限制。

授權差異

功能層級 支援狀況
microsoft-entra-id Free ❌ 不支援
microsoft-entra-id P1 ✅ 支援基礎存取策略
microsoft-entra-id P2 ✅ 支援基於風險的進階存取策略

對於一般個人或小型 VPS 環境,建議從 microsoft-entra-id Free 開始,並透過 Cloudflare Zero Trust 達成相似的防護效果,待業務規模擴大後再評估是否升級至 P1 方案。

Sources

See Also