條件式存取:裝置篩選
當系統管理員建立條件式存取原則時,常見工作是要能在其環境中鎖定或排除特定裝置。 裝置的條件篩選讓系統管理員能夠鎖定特定裝置為目標。 系統管理員可以將 支援用於裝置篩選的運算子和屬性 以及條件式存取原則中其他可用的指派條件一起使用。
常見場景
組織現在可以使用裝置篩選條件來實現多個案例。 下列案例提供如何使用這個新條件的範例。
- 限制特殊許可權資源的存取。 對於此範例,假設您想要允許下列使用者存取 Windows Azure 服務管理 API:
- 已指派 特殊權限角色。
- 完成多重要素驗證。
- 位於具有 特殊權限或安全系統管理員工作站 且證明為符合規範的裝置上。
- 在此案例中,組織會建立兩個條件式存取原則:
- 原則 1:所有具有管理員角色的使用者,可存取 Windows Azure 服務管理 API 雲端應用程式,對於存取控制,則為授與存取權但要求進行多重要素驗證,且裝置必須標示為符合規範。
- 原則 2:所有具有管理員角色的使用者,可存取 Windows Azure 服務管理 API 雲端應用程式,使用規則運算式 device.extensionAttribute1 equals SAW 來排除裝置篩選,對於存取控制,則為封鎖。 了解如何更新 Microsoft Entra 裝置物件上的 extensionAttributes。
- 從執行不支援作業系統的裝置阻止組織資源的存取。 在此範例中,假設您想要封鎖 Windows 10 以前的作業系統版本的資源存取。 在此案例中,組織會建立下列兩個條件式存取原則:
- 所有使用者,存取所有資源,但不包括使用規則表達式 device.operatingSystem 等於 Windows 和 device.operatingSystemVersion 的裝置篩選條件With “10.0” 和 Access controls、Block。
- 不需要對特定裝置上的特定帳戶進行多重要素驗證。 在此範例中,假設您希望在 Teams 手機或 Surface Hub 裝置等特定裝置上使用服務帳戶時,不需要進行多重要素驗證。 在此案例中,組織會建立下列兩個條件式存取原則:
- 原則 1:排除服務帳戶、存取所有資源的所有使用者,以及訪問控制、授與存取權,但需要多重要素驗證。
- 原則 2:選取使用者和群組,並包含僅包含服務帳戶的群組、存取所有資源、使用規則表達式 device.extensionAttribute2 不等於 TeamsPhoneDevice 和訪問控制的篩選。封鎖。
注意
Microsoft Entra ID 會使用裝置驗證來評估裝置篩選規則。 對於未向 Microsoft Entra ID 註冊的裝置,所有裝置內容都會被視為 Null 值,而且因為裝置不存在於目錄中,因此無法判斷裝置屬性。 以未註冊裝置的原則為目標的最佳方式是使用否定運算子,因為會套用已設定的篩選規則。 如果您要使用肯定運算子,只有在裝置存在於目錄中,且設定的規則符合裝置的屬性時,才會套用篩選規則。
建立條件式存取原則
篩選裝置是建立條件式存取原則時的選擇性控制項。
下列步驟有助於建立兩個條件式存取原則,以支援 常見案例下的第一種案例。
原則 1:所有具有管理員角色的使用者,可存取 Windows Azure 服務管理 API 雲端應用程式,對於存取控制,則為授與存取權但要求進行多重要素驗證,且裝置必須標示為符合規範。
- 至少以條件式存取管理員 (部分機器翻譯) 的身分登入 Microsoft Entra 系統管理中心。
- 瀏覽至 [保護] > [條件式存取] > [原則]。
- 選取 [新增原則]。
- 為您的原則命名。 建議組織針對其原則的名稱建立有意義的標準。
- 在 [指派] 底下,選取 [使用者] 或 [工作負載識別]。
在 [包含] 底下,選取 [目錄角色],然後選取名稱中有系統管理員的所有角色。
在 [排除] 下,選取 [使用者和群組],然後選擇您組織的緊急存取或急用帳戶。
選取完成。
- 在 [目標資源資源>(先前稱為雲端應用程式)>包含>選取資源] 下,選擇 [Windows Azure 服務管理 API],然後選取 [選取]。
- 在 [存取控制]>[授與] 底下,選取 [授與存取權]、[需要多重要素驗證] 和 [裝置需要標記為符合規範],然後選取 [選取]。
- 確認您的設定,並將 [啟用原則] 設定為 [開啟]。
- 選取 [建立] 以建立並啟用您的原則。
原則 2:所有具有系統管理員角色的使用者,可存取 Windows Azure 服務管理 API 雲端應用程式,使用規則運算式 device.extensionAttribute1 equals SAW 來排除裝置篩選,對於存取控制,則為封鎖。
- 選取 [新增原則]。
- 為您的原則命名。 建議組織針對其原則的名稱建立有意義的標準。
- 在 [指派] 底下,選取 [使用者] 或 [工作負載識別]。
在 [包含] 底下,選取 [目錄角色],然後選取名稱中有系統管理員的所有角色
在 [排除] 下,選取 [使用者和群組],然後選擇您組織的緊急存取或急用帳戶。
選取完成。
- 在 [目標資源資源>(先前稱為雲端應用程式)>包含>選取資源] 下,選擇 [Windows Azure 服務管理 API],然後選取 [選取]。
- 在 [條件]、[裝置篩選] 底下。
- 將 [設定] 切換為 [是]。
- 將 [符合規則的裝置] 設定為 [從原則中排除篩選出的裝置]。
- 將屬性設定為
ExtensionAttribute1
、將運算子設定為Equals
,並將值設定為SAW
。 - 選取完成。
- 在 [存取控制]>[授與] 下,選取 [封鎖存取],然後選取 [選取]。
- 確認您的設定,並將 [啟用原則] 設定為 [開啟]。
- 選取 [建立] 以建立並啟用您的原則。
警告
需要符合規範裝置的原則可能會提示 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 "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb") |
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 個字元」。
注意
Contains
和 NotContains
運算子的運作方式會因屬性類型而有所不同。 若為 operatingSystem
和 model
之類的字串屬性,Contains
運算子會指出該屬性中是否會出現指定的子字串。 若為 physicalIds
和 systemLabels
之類的字串集合屬性,Contains
運算子會指出指定的字串是否符合集合中所有字串的其中一個。
警告
裝置必須是受控於 Microsoft Intune、與 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,則會套用原則 |