在条件访问策略中使用位置条件

条件访问策略归根到底就是一个 if-then 语句,该语句用于组合信号、做出决策以及强制实施组织策略。 其中一个信号就是位置。

Conceptual Conditional signal plus decision to get enforcement

如博客文章 IPv6 即将进入 Microsoft Entra ID 中所述,我们现在在 Microsoft Entra 服务中支持 IPv6。

组织可以将这些位置用于常见任务,例如:

  • 要求用户在企业网络外部访问服务时执行多重身份验证。
  • 阻止从组织从未在其地运营过的特定国家或地区访问服务的用户访问。

位置是通过使用客户端提供给 Microsoft Entra ID 的公共 IP 地址或 Microsoft Authenticator 应用提供的 GPS 坐标找到的。 默认情况下,条件访问策略应用于所有 IPv4 和 IPv6 地址。 有关 IPv6 支持的详细信息,请参阅 Microsoft Entra ID 中的 IPv6 支持一文。

提示

完成第一因素身份验证后将强制执行条件访问策略。 在遇到拒绝服务 (DoS) 攻击等情景中,条件访问不应充当组织的第一道防线,但它可以使用这些事件的信号来确定访问权限。

命名位置

位置在“Microsoft Entra ID”>“安全性”>“条件访问”>“命名位置”下。 这些命名网络位置可能包括组织的总部网络范围、VPN 网络范围或你希望阻止的范围等位置。 命名位置是按 IPv4 和 IPv6 地址范围或国家/地区来定义的。

IPv4 和 IPv6 地址范围

若要按 IPv4/IPv6 地址范围定义命名位置,需要提供:

  • 位置的名称。
  • 一个或多个 IP 范围。
  • 可以选择“标记为受信任位置”。

New IP locations

IPv4/IPv6 地址范围定义的命名位置受到以下限制:

  • 配置最多 195 个命名位置。
  • 为每个命名位置配置最多 2000 个 IP 范围。
  • IPv4 和 IPv6 范围都是受支持的。
  • 包含在某范围内的 IP 地址的数量受限。 定义 IP 范围时只允许使用大于 /8 的 CIDR 掩码。

受信任位置

可将组织的公共网络范围等位置标记为受信任位置。 很多功能会以多种方式使用此标记。

  • 条件访问策略可以包含或排除这些位置。
  • 无法删除标记为“受信任”的位置。 在删除之前,先移除受信任的指定。

警告

即使了解该网络并将其标记为受信任位置,也并不意味着要从应用的策略中排除该位置。 显式验证是零信任体系结构的核心原则。 要详细了解零信任和其他让组织与指导原则保持一致的方式,请参阅零信任指导中心

国家/地区

组织可以通过 IP 地址或 GPS 坐标确定国家/地区位置。

若要按国家/地区定义命名位置,需要提供:

  • 位置的名称。
  • 选择按 IP 地址或 GPS 坐标确定位置。
  • 添加一个或多个国家/地区。
  • 可以选择“包括未知国家/地区”。

Country as a location

如果选择“按 IP 地址确定位置”,系统将收集用户登录的设备的 IP 地址。 自 2023 年 4 月 3 日起,当用户登录时,Microsoft Entra ID 会将用户的 IPv4 或 IPv6 地址解析为国家/地区,并且定期更新该映射。 组织可以使用按国家/地区定义的命名位置阻止来自他们未开展业务的国家/地区的流量。

如果选择“按 GPS 坐标确定位置”,则用户需要在其移动设备上安装 Microsoft Authenticator 应用。 系统每隔一小时会联系用户的 Microsoft Authenticator 应用,以收集用户的移动设备的 GPS 位置。

首次要求用户从 Microsoft Authenticator 共享其位置时,用户会在应用中收到通知。 用户需要打开应用并授予位置权限。 接下来的 24 小时内,如果用户仍在访问资源并授予应用在后台运行的权限,则每小时以静默方式共享一次设备的位置。

  • 24 小时后,用户必须打开应用,并批准通知。
  • 在 Microsoft Authenticator 应用中启用了数字匹配或其他上下文的用户不会静默接收通知,并且必须打开该应用才能批准通知。

每次用户分享其 GPS 位置时,该应用都会进行越狱检测(使用与 Intune MAM SDK 相同的逻辑)。 如果设备已越狱,则位置不被视为有效,并且不会授予用户访问权。 Android 上的 Microsoft Authenticator 应用使用 Google Play 完整性 API 来促进越狱检测。 如果 Google Play 完整性 API 不可用,则请求会被拒绝,并且用户无法访问请求的资源,除非条件访问策略被禁用。 有关 Microsoft Authenticator 应用的详细信息,请参阅 Microsoft Authenticator 应用的常见问题

注意

在“仅报告”模式下具有基于 GPS 的命名位置的条件访问策略会提示用户共享其 GPS 位置,但不会阻止用户登录。

在应用多个条件访问策略之前,这些条件访问策略可能会提示用户输入其 GPS 位置。 由于条件访问策略的应用方式,如果用户通过了位置检查但没有通过另一个策略,则可能被拒绝访问。 有关策略强制的详细信息,请参阅文章构建条件访问策略

重要

用户可能会每小时收到提示,让他们知道 Microsoft Entra ID 正在 Authenticator 应用中检查其位置。 预览只应用于保护可接受此行为的非常敏感的应用,或者需要将访问限制于特定国家/地区的情况。

拒绝具有修改位置的请求

用户可以修改 iOS 和 Android 设备报告的位置。 因此,Microsoft Authenticator 正在更新其基于位置的访问控制策略的安全基线。 如果用户使用的位置与安装了 Authenticator 的移动设备的实际 GPS 位置不同,Authenticator 将拒绝身份验证。

在 Authenticator 的 2023 年 11 月版本中,修改了设备位置的用户在尝试进行基于位置的身份验证时会在 Authenticator 中收到拒绝消息。 从 2024 年 1 月开始,任何运行较旧 Authenticator 版本的用户都将被阻止使用基于位置的身份验证:

  • Android 上的 Authenticator 版本 6.2309.6329 或更早版本
  • iOS 上的 Authenticator 版本 6.7.16 或更早版本

若要查找哪些用户在运行旧版 Authenticator,请使用 Microsoft Graph API

包括未知国家/地区

某些 IP 地址未映射到特定的国家/地区或区域。 要捕获这些 IP 位置,请在定义地理位置时选中“包括未知国家/地区”框。 使用此选项可以选择这些 IP 地址是否应包含在命名位置中。 如果使用命名位置的策略需要应用到未知位置,则使用此设置。

定义位置

  1. 以条件访问管理员或安全管理员身份登录 Azure 门户
  2. 浏览到“Microsoft Entra ID”>“安全性”>“条件访问”>“命名位置”。
  3. 选择“新建位置”。
  4. 为位置命名。
  5. 如果你知道构成该位置或“国家/地区”的特定外部可访问 IPv4 地址范围,请选择“IP 范围”。
    1. 为要指定的位置提供“IP 范围”或选择“国家/地区”。
      • 如果选择“国家/地区”,可以选择包含未知区域。
  6. 选择“保存”

策略中的位置条件

配置位置条件时,可以区分:

  • 任何位置
  • 所有受信任的位置
  • 所有合规的网络位置
  • 选定的位置

任何位置

默认情况下,选择“任何位置”会将策略应用到所有 IP 地址,即 Internet 上的所有地址。 此设置不限于已配置为命名位置的 IP 地址。 选择“任何位置”时,仍可从策略中排除特定位置。 例如,可将策略应用到除可信位置以外的所有位置,以将作用域设置为除企业网络以外的所有位置。

所有受信任的位置

此选项将应用到:

  • 标记为受信任位置的所有位置。
  • MFA 受信任的 IP(如果已配置)。

选定的位置

使用此选项可以选择一个或多个命名位置。 对于要应用此设置的策略,用户需要从任一选定位置建立连接。 “选择”时,将会打开显示命名网络列表的命名网络选择控件。 此列表还显示网络位置是否已标记为受信任位置。

IPv6 流量

自 2023 年 4 月 3 日起,条件访问策略将应用于所有 IPv4 和 IPv6 流量。

在 Microsoft Entra 登录活动报告中标识 IPv6 流量

可以通过转到 Microsoft Entra 登录活动报告来发现租户中的 IPv6 流量。 打开活动报告后,添加“IP 地址”列,并将冒号 (:) 添加到字段。 此筛选器有助于区分 IPv6 流量和 IPv4 流量。

还可以通过单击报告中的行,然后转到登录活动详细信息中的“位置”选项卡来查找客户端 IP。

A screenshot showing Microsoft Entra sign-in logs and an IP address filter for IPv6 addresses.

注意

如果登录因服务终结点处理流量的方式而失败,则登录日志中可能会显示这些终结点的 IPv6 地址。 请务必注意,不支持服务终结点。 如果用户看到这些 IPv6 地址,请从其虚拟网络子网配置中移除服务终结点。

要点

云代理和 VPN

使用云托管代理或 VPN 解决方案时,Microsoft Entra ID 在评估策略时使用的 IP 地址是该代理的 IP 地址。 不会使用包含用户公共 IP 地址的 X-Forwarded-For (XFF) 标头,因为没有任何机制验证该地址是否来自受信任的源,该标头可能提供了一种用于伪造 IP 地址的方法。

当云代理准备就绪时,可以使用一个策略来要求使用已建立 Microsoft Entra 混合联接的设备或合规设备,以便更轻松地进行管理。 对于云托管的代理或 VPN 解决方案的 IP 地址列表,要随时保持最新状态几乎是不可能的。

何时评估位置?

条件访问策略的评估时机:

  • 当用户最初登录到 Web 应用、移动应用或桌面应用程序时。
  • 当使用新式身份验证的移动应用或桌面应用程序使用刷新令牌来获取新的访问令牌时。 默认情况下此检查一小时进行一次。

对于使用新式身份验证的移动应用和桌面应用程序,此检查意味着能在更改网络位置的一小时内检测到位置更改。 对于不使用新式身份验证的移动应用和桌面应用程序,此策略将应用于每个令牌请求。 请求的频率可能会因应用程序而异。 同样,对于 Web 应用程序,此策略在初始登录时应用,并适合用于 Web 应用程序的会话生存期。 由于不同应用程序的会话生存期不同,因此策略评估间隔的时间也会有所不同。 每次应用程序请求新的登录令牌时,就会应用此策略。

默认情况下,Microsoft Entra ID 每小时颁发一个令牌。 在用户离开企业网络后的一小时内,将使用新式身份验证对应用程序实施该策略。

用户 IP 地址

在策略评估中使用的 IP 地址是用户的公共 IPv4 或 IPv6 地址。 对于专用网络中的设备,该 IP 地址不是 Intranet 中用户设备的客户端 IP,而是专用网络连接到公共 Internet 时使用的地址。

何时可能会阻止位置?

使用位置条件阻止访问的策略被视为限制性策略,应在经过全面测试后谨慎执行。 使用位置条件阻止身份验证的一些实例可能包括:

  • 屏蔽组织从未开展过业务的国家/地区。
  • 阻止特定的 IP 范围,例如:
    • 更改防火墙策略之前已知的恶意 IP。
    • 适用于高度敏感或优先的操作和云应用程序。
    • 基于用户特定的 IP 范围,例如对会计或工资单应用程序的访问权限。

排除用户

条件访问策略是功能强大的工具,建议从策略中排除以下帐户:

  • 紧急访问帐户或不受限帐户,用于防止租户范围的帐户锁定 。 在极少数情况下,所有管理员都被锁定在租户外,紧急访问管理帐户可用于登录租户,以采取措施来恢复访问。
  • 服务帐户和服务主体,例如 Microsoft Entra Connect 同步帐户。 服务帐户是不与任何特定用户关联的非交互式帐户。 它们通常由后端服务使用,以便可以对应用程序进行编程访问,不过也会用于登录系统以进行管理。 应该排除这样的服务帐户,因为无法以编程方式完成 MFA。 范围限定为用户的条件访问策略将不会阻止由服务主体进行的调用。 对工作负载标识使用条件访问来定义面向服务主体的策略。
    • 如果组织在脚本或代码中使用这些帐户,请考虑将其替换为托管标识。 作为临时解决方法,可以从基线策略中排除这些特定的帐户。

批量上传和下载命名位置

创建或更新命名位置时,若要进行批量更新,可以上传或下载含 IP 范围的 CSV 文件。 上传过程会将列表中的 IP 范围替换为该文件中的那些范围。 该文件的每行包含一个采用 CIDR 格式的 IP 地址范围。

API 支持和 PowerShell

命名位置的 Graph API 预览版本可用。有关详细信息,请参阅 namedLocation API

后续步骤