概述
管理员创建条件访问策略时,经常需要将其环境中的特定设备指定为目标或者排除这些设备。 利用设备的条件筛选器,管理员能够将特定设备指定为目标。 管理员可以在条件访问策略中使用设备筛选器支持的运算符和属性和其他可用分配条件。
常见方案
现在,组织可以使用设备条件筛选器来实现多种场景。 以下方案提供了有关如何使用此新条件的示例。
- 限制对特权资源的访问。 假设在这个示例中,您想允许某用户访问 Microsoft Azure 服务管理 API:
- 已获得特权角色。
- 已完成多重身份验证。
- 位于特权或安全管理工作站的设备上并被证明合规。
- 对于此方案,组织需创建两个条件访问策略:
- 策略 1:具有管理员角色、访问Windows Azure服务管理 API 云应用以及访问控制、授予访问权限的所有用户,但需要多重身份验证,并要求设备标记为合规。
- 策略 2:所有具有管理员权限的用户,访问 Windows Azure 服务管理 API 云应用程序。在设备使用规则表达式 device.extensionAttribute1 等于 SAW 的筛选器下,排除这些设备,并实施访问控制阻止。 了解如何在 Microsoft Entra 设备对象上更新扩展属性。
- 阻止通过运行不受支持的操作系统的设备访问组织资源。 在此示例中,假设您想要阻止早于 Windows 10 的 Windows OS 版本访问资源。 对于此方案,组织需创建以下条件访问策略:
- 访问控制应阻止访问所有资源的用户(不包括具有规则表达式
device.operatingSystem == 'Windows'和device.operatingSystemVersion startsWith '10.0'的设备的用户)。
- 访问控制应阻止访问所有资源的用户(不包括具有规则表达式
- 不要求对特定设备上的特定帐户执行多重身份验证。 对于此示例,假设在特定的设备上(如 Teams 电话或Surface中心设备)上使用服务帐户时,你不需要多重身份验证。 对于此方案,组织需创建以下两个条件访问策略:
- 策略 1:除服务帐户以外的所有用户,访问所有资源,访问控制为“授予访问权限”,但需要执行多重身份验证。
- 策略 2:选择用户和组,并包含一个只包含服务帐户的组,访问所有资源,排除使用规则表达式“device.extensionAttribute2 不等于 TeamsPhoneDevice”的设备筛选器,对于访问控制,设置为“阻止”。
注意
Microsoft Entra ID使用设备身份验证来评估设备筛选器规则。 对于使用 Microsoft Entra ID 注销的设备,所有设备属性都被视为 null 值,并且无法确定设备属性,因为设备不存在于目录中。 若要以未注册设备的策略为目标,最佳方法是使用负运算符,因为配置的筛选器规则将适用。 如果要使用正运算符,则筛选器规则仅在目录中存在设备且配置的规则与设备上的属性匹配时才适用。
创建条件访问策略
创建条件访问策略时,设备筛选器是可选控件。
以下步骤可帮助你创建两个条件访问策略,以支持常见方案中所述的第一种方案。
策略1:所有具有管理员角色的用户,在访问 Windows Azure 服务管理 API 云应用时,针对访问控制授予访问权限,但需要进行多重身份验证,并要求设备被标记为合规。
- 登录到 Azure 门户,并至少具有条件访问管理员的身份。
- 浏览到 Microsoft Entra ID>安全性>条件访问
- 选择“创建新策略”。
- 为策略指定名称。 建议组织为其策略的名称创建有意义的标准。
- 在分配下,选择用户或工作负载标识。
在“包括”选项下,选择“目录角色”,然后选择名称中带有管理员的所有角色。
在“排除”下选择“用户和组”,然后选择组织的紧急访问帐户或不受限帐户。
选择“完成”。
- 在 目标资源>资源(原云应用)>包含>选择资源中,选择Windows Azure 服务管理 API,然后选择 选择。
- 在“访问控制”“授予”下,依次选择“授予访问权限”、“需要多重身份验证”、“要求设备标记为合规”,然后选择“选择”。
- 确认设置,然后将“启用策略”设置为“打开”。
- 选择“ 创建 ”以启用策略。
策略 2:具有管理员角色的所有用户,访问Windows Azure服务管理 API 云应用,不包括使用规则表达式 device.extensionAttribute1 等于 SAW 和访问控制的设备筛选器,阻止。
- 选择“新策略”。
- 为策略指定名称。 建议组织为其策略的名称创建有意义的标准。
- 在分配下,选择用户或工作负载标识。
在“包括”下,选择“目录角色”,然后选择名称中包含管理员字样的所有角色
在“排除”下选择“用户和组”,然后选择组织的紧急访问帐户或不受限帐户。
选择“完成”。
- 在 目标资源>资源(原称云应用)>包括>选择资源,选择Windows Azure 服务管理 API,然后选择 选择。
- 在“条件”下,选择“设备筛选器”。
- 将“配置”切换为“是” 。
- 将“与规则匹配的设备”设置为“从策略中排除筛选的设备” 。
- 将属性设置为
ExtensionAttribute1,将运算符设置为Equals,将值设置为SAW。 - 选择“完成”。
- 在访问控制下的>中,选择阻止访问,然后选择选择。
- 确认设置,然后将“启用策略”设置为“打开”。
- 选择“ 创建 ”以启用策略。
警告
要求使用合规设备的策略在策略评估过程中可能会提示用户在 Mac、iOS 和 Android 上选择设备证书,即使未强制执行设备合规性也是这样。 在使设备符合要求之前,这些提示可能会重复出现。
设置属性值
可以通过Microsoft 图形 API设置扩展属性。 有关设置设备属性的详细信息,请参阅更新设备一文。
为设备筛选的图形 API
设备 API 的筛选器在 Microsoft Graph v1.0 终结点中提供,可以使用终结点 https://microsoftgraph.chinacloudapi.cn/v1.0/identity/conditionalaccess/policies/访问。 可以在创建新的条件访问策略时配置设备筛选器,也可以更新现有策略以配置设备筛选器条件。 若要更新现有策略,可以通过在 Microsoft Graph v1.0 终结点上进行补丁调用,将现有策略的策略 ID 附加并执行以下请求正文。 此处的示例演示如何配置设备筛选器条件,其中排除了未标记为 SAW 设备的设备。 规则语法可以包含多个单一表达式。 若要了解有关语法的详细信息,请参阅 Microsoft Entra ID 中组的动态成员身份组规则。
{
"conditions": {
"devices": {
"deviceFilter": {
"mode": "exclude",
"rule": "device.extensionAttribute1 -ne \"SAW\""
}
}
}
}
筛选器支持的运算符和设备属性
以下设备属性可用于条件访问中的设备筛选器。
重要
Microsoft建议在条件访问中使用“筛选设备条件”时,至少使用一个系统定义的或管理员可配置的设备属性。
注意
Microsoft Entra ID使用设备身份验证来评估设备筛选器规则。 对于使用 Microsoft Entra ID 注销的设备,所有设备属性都被视为 null 值,并且无法确定设备属性,因为设备不存在于目录中。 若要以未注册设备的策略为目标,最佳方法是使用负运算符,因为配置的筛选器规则将适用。 如果要使用正运算符,则筛选器规则仅在目录中存在设备且配置的规则与设备上的属性匹配时才适用。
| 支持的设备特性 | 系统定义或管理员配置 | 支持的运算符 | 支持的值 | 示例 |
|---|---|---|---|---|
| 设备ID | 是 | Equals(等于)、NotEquals(不等于)、In(包含于)、NotIn(不包含于) | 有效的 GUID 形式的设备ID | (device.deviceid -eq “aaaaaaaa-0000-1111-2222-bbbbbbbbbb”) |
| 显示名称 | 否 | 等于、不等于、以……开始、不以……开始、以……结束、不以……结束、包含、不包含、在、不在 | 任意字符串 | (device.displayName -contains“ABC”) |
| 设备所有权 | 是 | Equals、NotEquals | 对于自带设备,支持的值是“Personal”;对于公司拥有的设备,支持的值是“Company” | (device.deviceOwnership -eq“Company”) |
| enrollmentProfileName | 是 | 等于、不等于、以……开始、不以……开始、以……结束、不以……结束、包含、不包含、在、不在 | 这是由Microsoft Intune根据设备在注册时注册的配置文件设置的。 它是由 Microsoft Intune 管理员创建的字符串值,与之匹配的是应用于设备的 Windows Autopilot、Apple 自动设备注册(ADE)或 Google 注册配置文件。 | (device.enrollmentProfileName -startsWith“AutoPilot Profile”) |
| 是否合规 | 是 | Equals、NotEquals | 对于合规设备,支持的值是“True”,对于不合规设备,支持的值是“False” | (device.isCompliant -eq“True”) |
| 制造商 | 否 | 等于、不等于、以……开始、不以……开始、以……结束、不以……结束、包含、不包含、在、不在 | 任意字符串 | (device.manufacturer -startsWith “Microsoft”) |
| mdmAppId(应用程序标识符) | 是 | Equals(等于)、NotEquals(不等于)、In(包含于)、NotIn(不包含于) | 有效的 MDM 应用程序 ID | (device.mdmAppId -in [“00001111-aaaa-2222-bbbb-3333cccc4444”]) |
| 模型 | 否 | 等于、不等于、以……开始、不以……开始、以……结束、不以……结束、包含、不包含、在、不在 | 任意字符串 | (device.model 不包含 “Surface”) |
| 操作系统 | 是 | 等于、不等于、以……开始、不以……开始、以……结束、不以……结束、包含、不包含、在、不在 | 有效的操作系统(如 Windows、iOS 或 Android) | (device.operatingSystem -eq“Windows”) |
| 操作系统版本 | 是 | 等于、不等于、以……开始、不以……开始、以……结束、不以……结束、包含、不包含、在、不在 | 有效的操作系统版本(如 6.1 for Windows 7、6.2 for Windows 8,或 Windows 10 和 Windows 11 的 10.0) | (device.operatingSystemVersion -in [“10.0.18363”、“10.0.19041”、“10.0.19042”、“10.0.22000”]) |
| physicalIds | 是 | Contains、NotContains | 例如,所有Windows Autopilot设备将 ZTDId(分配给所有导入Windows Autopilot设备的唯一值)存储在 device physicalIds 属性中。 | (device.physicalIds -contains “[ZTDId]:value”) |
| profileType | 是 | Equals、NotEquals | 为设备设置的有效配置文件类型。 支持的值包括:RegisteredDevice(默认值)、SecureVM(用于启用 Microsoft Entra 登录的 Azure 中的 Windows 虚拟机)、Printer(用于打印机)、Shared(用于共享设备)、IoT(用于物联网设备) | (device.profileType -eq “打印机”) |
| systemLabels | 是 | Contains、NotContains | 由系统应用于设备的标签的列表。 一些受支持的值包括:AzureResource(用于启用Microsoft Entra登录Azure中的Windows VM)、M365Managed(用于使用 Microsoft 托管桌面 管理的设备)、MultiUser(用于共享设备) | (device.systemLabels - 包含“M365Managed”) |
| 信任类型 | 是 | Equals、NotEquals | 设备的有效注册状态。 支持的值包括:AzureAD(用于已加入Microsoft Entra的设备)、ServerAD(用于Microsoft Entra混合联接设备)、Workplace(用于Microsoft Entra已注册设备) | (device.trustType -eq“ServerAD”) |
| 扩展属性1-15 | 是 | 等于、不等于、以……开始、不以……开始、以……结束、不以……结束、包含、不包含、在、不在 | extensionAttribute1-15 是可供客户用于设备对象的特性。 客户可以通过自定义值更新 extensionAttributes1 到 15 中的任何特性,并在条件访问的设备条件筛选器中使用这些特性。 可以使用任何字符串值。 | (device.extensionAttribute1 -eq“SAW”) |
警告
在条件访问策略评估时,设备必须由 Microsoft Intune 管理、合规,或者通过 Microsoft Entra 的混合加入,才能在 extensionAttributes1-15 中提供值。
注意
生成复杂规则或将过多的单个标识符(如 deviceid)用于设备标识时,请记住“筛选规则的最大长度为 3072 个字符”。
注意
Contains 和 NotContains 运算符的工作方式因属性类型而异。 对于 operatingSystem 和 model 等字符串属性,Contains 运算符指示指定的子字符串是否出现在属性中。 对于 physicalIds 和 systemLabels 等字符串集合属性,Contains 运算符指示指定的字符串是否与集合中的某个整个字符串匹配。
适用于设备筛选器的策略行为
条件访问中的设备条件筛选器根据Microsoft Entra ID中已注册设备的设备属性评估策略,因此请务必了解应用或未应用策略的情况。 下表说明了配置设备过滤条件时的表现。
| 设备条件筛选器 | 设备注册状态 | 已应用设备筛选器 |
|---|---|---|
| 在包含/排除模式中使用正向运算符(Equals, StartsWith, EndsWith, Contains, In),并结合使用任何属性。 | 未注册设备 | 否 |
| 使用包含/排除模式,应用正运算符(Equals、StartsWith、EndsWith、Contains、In)以及除去 extensionAttributes1-15 的特性 | 已注册设备 | 是,如果满足条件 |
| 使用正运算符(Equals、StartsWith、EndsWith、Contains、In)和包括 extensionAttribute1-15 在内的特性的包含/排除模式 | 由 Intune 管理的已注册设备 | 是,如果满足条件 |
| 使用正运算符(Equals、StartsWith、EndsWith、Contains、In)和包括 extensionAttribute1-15 在内的特性的包含/排除模式 | 不由 Intune 管理的已注册设备 | 是,如果满足条件。 使用 extensionAttributes1-15 时,如果设备符合条件或已作为 Microsoft Entra 混合加入,则策略适用。 |
| 使用负运算符(NotEquals、NotStartsWith、NotEndsWith、NotContains、NotIn)和任意属性的包含/排除模式 | 未注册设备 | 是 |
| 使用负运算符(NotEquals、NotStartsWith、NotEndsWith、NotContains、NotIn)和除 extensionAttribute1-15 以外的任何特性的包含/排除模式 | 已注册设备 | 是,如果满足条件 |
| 使用负运算符(NotEquals、NotStartsWith、NotEndsWith、NotContains、NotIn)和包括 extensionAttributes1-15 在内的任何属性的包含/排除模式 | 由 Intune 管理的已注册设备 | 是,如果满足条件 |
| 使用负运算符(NotEquals、NotStartsWith、NotEndsWith、NotContains、NotIn)和包括 extensionAttributes1-15 在内的任何属性的包含/排除模式 | 不由 Intune 管理的已注册设备 | 是,如果满足条件。 使用 extensionAttributes1-15 时,策略适用于设备符合条件或是已加入 Microsoft Entra 混合联接。 |