條件式存取:裝置篩選

當系統管理員建立條件式存取原則時,在其環境中以或排除特定裝置的能力是常見的工作。 裝置的條件篩選可讓系統管理員以特定裝置為目標。 系統管理員可以使用支援的操作員和屬性,搭配條件式存取原則中的其他可用指派條件來篩選裝置篩選。

在條件式存取原則條件中建立裝置的篩選

常見場景

組織現在可以使用裝置篩選條件來實現多個案例。 下列案例提供如何使用這個新條件的範例。

  • 限制特殊許可權資源的存取。 在此範例中,假設您想要允許從下列使用者存取 Windows Azure 服務管理 API:
    • 指派特殊許可權角色
    • 已完成多重要素驗證。
    • 位於具有特殊許可權或安全系統管理工作站且證明為符合規範的裝置上。
    • 在此案例中,組織會建立兩個條件式存取原則:
      • 原則 1:所有具有管理員角色的使用者,可存取 Windows Azure 服務管理 API 雲端應用程式,對於存取控制,則為授與存取權但要求進行多重要素驗證,且裝置必須標示為符合規範。
      • 原則 2:所有具有管理員角色的使用者,可存取 Windows Azure 服務管理 API 雲端應用程式,使用規則運算式 device.extensionAttribute1 equals SAW 來排除裝置篩選,對於存取控制,則為封鎖。 了解如何更新 Microsoft Entra 裝置物件上的 extensionAttributes
  • 從執行不支援作業系統的裝置阻止組織資源的存取。 在此範例中,假設您想要封鎖 Windows 10 以前的作業系統版本的資源存取。 在此案例中,組織會建立下列兩個條件式存取原則:
    • 封鎖存取所有雲端應用程式的全部使用者 (不包括存取控制篩選條件,以及使用規則運算式「device.operatingSystem equals Windows and device.operatingSystemVersion startsWith "10.0"」的裝置篩選條件)。
  • 不需要對特定裝置上的特定帳戶進行多重要素驗證。 在此範例中,假設您在 Teams 電話或 Surface Hub 裝置等特定裝置上使用服務帳戶時,不需要多重要素驗證。 在此案例中,組織會建立下列兩個條件式存取原則:
    • 原則 1:服務帳戶以外的所有使用者,存取所有雲端應用程式,在存取控制中選擇授與存取權,但要求進行多重要素驗證。
    • 原則 2:選取使用者和群組並只納入包含服務帳戶的群組,存取所有雲端應用程式,使用規則運算式「device.extensionAttribute2 not equals TeamsPhoneDevice」來排除裝置篩選,在存取控制中選擇封鎖。

注意

Microsoft Entra ID 會使用裝置驗證來評估裝置篩選規則。 對於未向 Microsoft Entra ID 註冊的裝置,所有裝置內容都會被視為 Null 值,而且因為裝置不存在於目錄中,因此無法判斷裝置屬性。 以未註冊裝置的原則為目標的最佳方式是使用否定運算子,因為會套用已設定的篩選規則。 如果您要使用肯定運算子,只有在裝置存在於目錄中,且設定的規則符合裝置的屬性時,才會套用篩選規則。

建立條件式存取原則

篩選裝置是建立條件式存取原則時的選擇性控制項。

下列步驟可協助建立兩個條件式存取原則,以支持常見案例下的 第一個案例

原則 1:所有具有管理員角色的使用者,可存取 Windows Azure 服務管理 API 雲端應用程式,對於存取控制,則為授與存取權但要求進行多重要素驗證,且裝置必須標示為符合規範。

  1. 至少以條件式存取管理員 (部分機器翻譯) 的身分登入 Microsoft Entra 系統管理中心
  2. 瀏覽至 [保護] > [條件式存取] > [原則]
  3. 選取 [新增原則]
  4. 為您的原則命名。 建議組織針對其原則的名稱建立有意義的標準。
  5. 在 [指派] 底下,選取 [使用者] 或 [工作負載識別]
    1. 在 [包含] 底下,選取 [目錄角色],然後選取名稱中有系統管理員的所有角色。

      警告

      條件式存取原則支援內建角色。 系統不會針對其他角色類型強制執行條件式存取原則,包括管理單位範圍自訂角色

    2. 在 [排除] 下,選取 [使用者和群組],然後選擇您組織的緊急存取或急用帳戶。

    3. 選取完成

  6. 在 [目標資源]>[雲端應用程式]>[包含]>[選取應用程式] 底下,選擇 [Windows Azure 服務管理 API],然後選取 [選取]
  7. 在 [存取控制]>[授與] 底下,選取 [授與存取權]、[需要多重要素驗證] 和 [裝置需要標記為符合規範],然後選取 [選取]
  8. 確認您的設定,並將 [啟用原則] 設定為 [開啟]
  9. 選取 [建立] 以建立並啟用您的原則。

原則 2:具有系統管理員角色的所有使用者、存取 Windows Azure 服務管理 API 雲端應用程式,並排除使用規則表達式 device.extensionAttribute1 等於 SAW 和 Access controls、Block 的裝置篩選。

  1. 選取 [新增原則]
  2. 為您的原則命名。 建議組織針對其原則的名稱建立有意義的標準。
  3. 在 [指派] 底下,選取 [使用者] 或 [工作負載識別]
    1. 在 [包含] 底下,選取 [目錄角色],然後選取名稱中有系統管理員的所有角色

      警告

      條件式存取原則支援內建角色。 系統不會針對其他角色類型強制執行條件式存取原則,包括管理單位範圍自訂角色

    2. 在 [排除] 下,選取 [使用者和群組],然後選擇您組織的緊急存取或急用帳戶。

    3. 選取完成

  4. 在 [目標資源]>[雲端應用程式]>[包含]>[選取應用程式] 底下,選擇 [Windows Azure 服務管理 API],然後選取 [選取]
  5. 在 [條件]、[裝置篩選] 底下。
    1. 將 [設定] 切換為 [是]
    2. 將 [符合規則的裝置] 設定為 [從原則中排除篩選出的裝置]
    3. 將屬性設定為 ExtensionAttribute1、將運算子設定為 Equals,並將值設定為 SAW
    4. 選取完成
  6. 在 [存取控制]>[授與] 下,選取 [封鎖存取],然後選取 [選取]
  7. 確認您的設定,並將 [啟用原則] 設定為 [開啟]
  8. 選取 [建立] 以建立並啟用您的原則。

警告

需要符合規範裝置的原則可能會提示 Mac、iOS 和 Android 上的使用者,即使未強制執行裝置合規性,也需要在原則評定期間選取裝置憑證。 在裝置符合規範之前,可能會重複這些提示。

設定屬性值

透過 Microsoft Graph API 可以設定延伸模組屬性。 如需如何設定裝置屬性的詳細資訊,請參閱更新裝置一文。

裝置篩選 Graph API

裝置篩選 API 可在 Microsoft Graph v1.0 端點中使用,並可使用端點 https://graph.microsoft.com/v1.0/identity/conditionalaccess/policies/ 來存取。 您可以在建立新的條件式存取原則時設定裝置篩選,也可以更新現有原則來設定裝置篩選條件。 若要更新現有原則,您可以在 Microsoft Graph v1.0 端點上發出修補呼叫,方法是加上現有原則的原則識別碼並執行下列要求本文。 此處的範例會說明如何設定裝置篩選條件來排除未標記為 SAW 裝置的裝置。 此規則語法可包含多個單一運算式。 若要深入了解語法,請參閱 Microsoft Entra ID 中群組的動態成員資格規則

{
    "conditions": {
        "devices": {
            "deviceFilter": {
                "mode": "exclude",
                "rule": "device.extensionAttribute1 -ne \"SAW\""
            }
        }
    }
}

支援用於篩選的運算子和裝置屬性

下列裝置屬性可在條件式存取中與裝置篩選條件搭配使用。

注意

Microsoft Entra ID 會使用裝置驗證來評估裝置篩選規則。 對於未向 Microsoft Entra ID 註冊的裝置,所有裝置內容都會被視為 Null 值,而且因為裝置不存在於目錄中,因此無法判斷裝置屬性。 以未註冊裝置的原則為目標的最佳方式是使用否定運算子,因為會套用已設定的篩選規則。 如果您要使用肯定運算子,只有在裝置存在於目錄中,且設定的規則符合裝置的屬性時,才會套用篩選規則。

支援的裝置屬性 支援的運算子 支援的值 範例
deviceId Equals、NotEquals、In、NotIn 屬於 GUID 的有效 deviceId (device.deviceid -eq “aaaaaaaaaa-0000-1111-2222-bbbbbbbb”)
displayName Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn 任何字串 (device.displayName -contains "ABC")
deviceOwnership Equals、NotEquals 支援的值為「個人」(若為自備裝置) 和「公司」(若為公司擁有的裝置) (device.deviceOwnership -eq "Company")
isCompliant Equals、NotEquals 支援的值為「True」(若為符合規範的裝置) 和「False」(若為不符合規範的裝置) (device.isCompliant -eq "True")
製造商 Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn 任何字串 (device.manufacturer -startsWith "Microsoft")
mdmAppId Equals、NotEquals、In、NotIn 有效的 MDM 應用程式識別碼 (device.mdmAppId -in [“00001111-aaaa-2222-bbbb-3333cccc4444”])
機型 Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn 任何字串 (device.model -notContains "Surface")
operatingSystem Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn 有效的作業系統 (例如 Windows、iOS 或 Android) (device.operatingSystem -eq "Windows")
operatingSystemVersion Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn 有效的作業系統版本 (例如 6.1 代表 Windows 7、6.2 代表 Windows 8 或 10.0 代表 Windows 10 和 Windows 11) (device.operatingSystemVersion -in ["10.0.18363", "10.0.19041", "10.0.19042", "10.0.22000"])
physicalIds Contains、NotContains 舉例來說,所有 Windows Autopilot 裝置都會在裝置的 physicalIds 屬性中儲存 ZTDId (指派給所有已匯入 Windows Autopilot 裝置的唯一值)。 (device.physicalIds -contains "[ZTDId]:value")
profileType Equals、NotEquals 為裝置設定的有效設定檔類型。 支援的值為:RegisteredDevice (預設值)、SecureVM (用於 Azure 中已啟用 Microsoft Entra 登入的 Windows VM)、Printer (用於印表機)、Shared (用於共用裝置)、IoT (用於 IoT 裝置) (device.profileType -eq "Printer")
systemLabels Contains、NotContains 系統套用至裝置的標籤清單。 其中一些支援的值為:AzureResource (用於 Azure 中已啟用 Microsoft Entra 登入的 Windows VM)、M365Managed (用於透過 Microsoft 受管理的電腦來進行管理的裝置)、MultiUser (用於共用裝置) (device.systemLabels -contains "M365Managed")
trustType Equals、NotEquals 裝置的有效註冊狀態。 支援的值為:AzureAD (用於已聯結 Microsoft Entra 的裝置)、ServerAD (用於已聯結 Microsoft Entra 混合式的裝置)、Workplace (用於已註冊 Microsoft Entra 的裝置) (device.trustType -eq "ServerAD")
extensionAttribute1-15 Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn extensionAttributes1-15 是客戶可用於裝置物件的屬性。 客戶可以使用自訂值來更新 extensionAttributes1 至 15 的任何一個屬性,並在條件式存取的裝置篩選條件中使用這些值。 您可以使用任何字串值。 (device.extensionAttribute1 -eq "SAW")

注意

建置複雜規則或使用太多個別識別碼 (例如用於裝置識別的 deviceid) 時,請記住「篩選規則的長度上限為 3072 個字元」。

注意

ContainsNotContains 運算子的運作方式會因屬性類型而有所不同。 若為 operatingSystemmodel 之類的字串屬性,Contains 運算子會指出該屬性中是否會出現指定的子字串。 若為 physicalIdssystemLabels 之類的字串集合屬性,Contains 運算子會指出指定的字串是否符合集合中所有字串的其中一個。

警告

裝置必須Microsoft Intune 管理、相容或Microsoft Entra 混合式聯結,才能在條件式存取原則評估期間於 extensionAttributes1-15 中使用值。

裝置篩選的原則行為

條件式存取中的裝置篩選條件會根據 Microsoft Entra ID 中已註冊裝置的裝置屬性來評估原則,因此請務必了解會套用或不會套用原則的各種情況。 下表說明在設定了裝置篩選條件時的行為。

裝置篩選條件 裝置註冊狀態 套用裝置篩選
包含/排除模式搭配肯定運算子 (Equals、StartsWith、EndsWith、Contains、In) 並使用任何屬性 未註冊的裝置 No
包含/排除模式搭配肯定運算子 (Equals、StartsWith、EndsWith、Contains、In) 並使用 extensionAttributes1-15 以外的屬性 已註冊的裝置 是,如果符合準則
包含/排除模式搭配肯定運算子 (Equals、StartsWith、EndsWith、Contains、In) 並使用包括 extensionAttributes1-15 在內的屬性 由 Intune 管理的已註冊裝置 是,如果符合準則
包含/排除模式搭配肯定運算子 (Equals、StartsWith、EndsWith、Contains、In) 並使用包括 extensionAttributes1-15 在內的屬性 並非由 Intune 管理的已註冊裝置 是,如果符合準則。 使用 extensionAttributes1-15 時,如果裝置符合規範或Microsoft Entra 混合式聯結,則會套用原則
包含/排除模式搭配否定運算子 (NotEquals、NotStartsWith、NotEndsWith、NotContains、NotIn) 並使用任何屬性 未註冊的裝置 Yes
包含/排除模式搭配否定運算子 (NotEquals、NotStartsWith、NotEndsWith、NotContains、NotIn) 並使用 extensionAttributes1-15 以外的任何屬性 已註冊的裝置 是,如果符合準則
包含/排除模式搭配否定運算子 (NotEquals、NotStartsWith、NotEndsWith、NotContains、NotIn) 並使用包括 extensionAttributes1-15 在內的任何屬性 由 Intune 管理的已註冊裝置 是,如果符合準則
包含/排除模式搭配否定運算子 (NotEquals、NotStartsWith、NotEndsWith、NotContains、NotIn) 並使用包括 extensionAttributes1-15 在內的任何屬性 並非由 Intune 管理的已註冊裝置 是,如果符合準則。 使用 extensionAttributes1-15 時,如果裝置符合規範或Microsoft Entra 混合式聯結,則會套用原則