适用于外部 ID 的身份验证和条件访问

提示

本文适用于 B2B 协作和 B2B 直连。 如果你的租户配置了客户身份验证和访问控制管理,请参阅 Microsoft Entra 外部 ID 中的安全性和治理

当外部用户访问组织中的资源时,协作方法(B2B 协作和 B2B 直连)、用户的标识提供者(外部 Microsoft Entra 租户、社交标识提供者等)、条件访问策略和在用户主租户及租户托管资源中配置的跨租户访问设置共同确定身份验证流。

本文介绍适用于访问组织中资源的外部用户的身份验证流。 组织可以针对其外部用户强制实施多个条件访问策略,此类策略可在租户、应用或单个用户级别强制实施,其方式与为全职员工和组织成员启用策略的方式相同。

外部 Microsoft Entra 用户的身份验证流

下图展示了 Microsoft Entra 组织与其他 Microsoft Entra 组织的用户共享资源时的身份验证流。 此图显示了跨租户访问设置如何与条件访问策略(如多重身份验证)协同工作,确定用户能否访问资源。 此流程适用于 B2B 协作和 B2B 直连,步骤 6 中所述的情况除外。

显示跨租户身份验证过程的图表。

步骤 说明
1 来自 Fabrikam(用户的主租户)的一位用户开始登录到 Contoso(资源租户)中的资源。
2 登录期间,Microsoft Entra 安全令牌服务 (STS) 会评估 Contoso 的条件访问策略。 它还可通过评估跨租户访问设置(Fabrikam 的出站设置和 Contoso 的入站设置)来检查是否允许 Fabrikam 用户进行访问。
3 Microsoft Entra ID 检查 Contoso 的入站信任设置,以查看 Contoso 是否信任来自 Fabrikam 的 MFA 和设备声明(设备合规性、已建立混合 Microsoft Entra ID 联接的状态)。 如果不信任,则跳到步骤 6。
4 如果 Contoso 信任 Fabrikam 的 MFA 和设备声明,Microsoft Entra ID 会检查用户的身份验证会话,以指示用户已完成 MFA。 如果 Contoso 信任 Fabrikam 的设备信息,Microsoft Entra ID 在身份验证会话中查找声明,指示设备状态(合规或已建立混合 Microsoft Entra ID 联接)。
5 如果需要但未完成 MFA,或未提供设备声明,则 Microsoft Entra ID 会根据需要在用户的主租户中发出 MFA 和设备质询。 在 Fabrikam 中满足 MFA 和设备要求时,用户可以访问 Contoso 中的资源。 如果检查未通过,则阻止访问。
6 未配置信任设置且需要 MFA 时,系统会提示 B2B 协作用户进行 MFA。 他们在资源租户中需要满足 MFA。 阻止 B2B 直连用户的访问。 如果必须满足设备合规性,但无法对其进行评估,则会阻止 B2B 协作和 B2B 直连用户的访问。

有关详细信息,请参阅外部用户的条件访问部分。

适用于非 Azure AD 外部用户的身份验证流

当 Microsoft Entra 组织与除 Microsoft Entra ID 之外的标识提供者的外部用户共享资源时,身份验证流取决于该用户是使用标识提供者进行身份验证,还是使用电子邮件一次性密码身份验证进行身份验证。 在任何一种情况下,资源租户都会确定要使用的身份验证方法,然后将用户重定向到其标识提供者或提供一次性密码。

示例 1:适用于非 Azure AD 外部用户的身份验证流和令牌

下图说明了当外部用户使用非 Azure AD 标识提供者(如 Google、Facebook 或联合 SAML/WS 联合标识提供者)的帐户登录时的身份验证流。

显示来自外部目录的 B2B 来宾用户的身份验证流的示意图。

步骤 说明
1 B2B 来宾用户请求对资源的访问。 资源将用户重定向到其资源租户,即受信任的 IdP。
2 资源租户将用户标识为外部用户,并将用户重定向到 B2B 来宾用户的 IdP。 用户在 IdP 中执行主要身份验证。
3 在 B2B 来宾用户的 IdP 中评估授权策略。 如果用户满足这些策略,则 B2B 来宾用户的 IdP 会向用户颁发令牌。 用户被重定向回具有令牌的资源租户。 资源租户会验证令牌,然后根据其条件访问策略评估用户。 例如,资源租户可能要求用户执行 Microsoft Entra 多重身份验证。
4 评估入站跨租户访问设置和条件访问策略。 满足所有策略后,资源租户会颁发专属令牌,并将用户重定向到其资源。

示例 2:适用于一次性密码用户的身份验证流和令牌

下图说明了启用电子邮件一次性密码身份验证且外部用户未通过其他方式(如 Microsoft Entra ID、Microsoft 帐户 (MSA) 或社交标识提供者)进行身份验证时的流。

显示使用一次性密码的 B2B 来宾用户的身份验证流的图表。

步骤 说明
1 用户请求访问另一个租户中的资源。 资源将用户重定向到其资源租户,即受信任的 IdP。
2 资源租户将用户标识为外部电子邮件一次性密码 (OTP) 用户,并向用户发送包含 OTP 的电子邮件。
3 用户检索 OTP 并提交代码。 资源租户会根据其条件访问策略评估用户。
4 满足所有条件访问策略后,资源租户会颁发一个令牌,并将用户重定向到其资源。

适用于外部用户的条件访问

组织可以针对外部 B2B 协作和 B2B 直连用户强制实施条件访问策略,其方式与为组织的全职员工和成员启用策略的方式相同。 通过引入跨租户访问设置,还可以信任来自外部 Microsoft Entra 组织的 MFA 和设备声明。 本节介绍将条件访问应用于组织外部用户时的重要注意事项。

注意

跨租户信任不支持包含条件性访问的自定义控件。

将条件访问策略分配给外部用户类型

配置条件访问策略时,可以精细控制要应用策略的外部用户的类型。 外部用户根据身份验证方式(内部或外部)以及他们与组织的关系(来宾或成员)进行分类。

  • B2B 协作来宾用户 - 通常被视为来宾的多数用户都属于此类别。 此 B2B 协作用户具有外部 Microsoft Entra 组织或外部标识提供者(例如社交标识)中的帐户,并且他们在组织中具有来宾级权限。 在 Microsoft Entra 目录中创建的用户对象的 UserType 为 Guest。 此类别包括已被邀请以及已使用自助注册的 B2B 协作用户。
  • B2B 协作成员用户 - 此 B2B 协作用户具有外部 Microsoft Entra 组织或外部标识提供者(例如社交标识)中的帐户,并且他们在资源组织中具有来宾级权限。 这种情况在由多个租户组成的组织中很常见,其中用户被视为较大组织的一部分,并且需要成员级访问权限来访问组织的其他租户中的资源。 在 Microsoft Entra 目录资源中创建的用户对象的 UserType 为 Member。
  • B2B 直连用户 - 能够通过 B2B 直连访问资源的外部用户,B2B 直连是与另一个 Microsoft Entra 组织的相互双向连接,允许单一登录访问特定 Microsoft 应用程序(目前为 Microsoft Teams Connect 共享频道)。 B2B 直连用户不会出现在你的 Microsoft Entra 组织中,而是从应用程序内部进行管理(例如,由 Teams 共享频道所有者管理)。
  • 本地来宾用户 - 本地来宾用户具有在目录中管理的凭据。 在 Microsoft Entra B2B 协作可用之前,通常通过为分销商、供应商、供应商和其他人员设置内部凭据,将用户对象 UserType 设置为 Guest 来将其指定为来宾。
  • 服务提供商用户 - 作为组织的云服务提供商的组织(Microsoft Graph 合作伙伴特定配置中的 isServiceProvider 属性为 True)。
  • 其他外部用户 - 适用于不属于这些类别但未被视为组织内部成员的任何用户,这意味着这些用户不通过 Microsoft Entra ID 进行内部身份验证,并且在资源 Microsoft Entra 目录中创建的用户对象的 UserType 不是 Member。

注意

“所有来宾和外部用户”选项现已替换为“来宾和外部用户”及其所有子类型。 对于以前选择了“所有来宾和外部用户”且具有条件访问策略的客户,现在将看到“来宾和外部用户”以及选择的所有子类型。 UX 中的此更改对条件访问后端评估策略的方式没有任何功能影响。 新的选择为客户提供了所需的粒度,以在创建条件访问策略时选择特定类型的来宾和外部用户,以包括/排除用户范围。

详细了解条件访问用户分配

比较外部 ID 条件访问策略

下表详细比较了 Microsoft Entra 外部 ID 中的安全策略和合规性选项。 安全策略和合规性由主办/邀请组织根据条件访问策略进行管理。

策略 B2B 协作用户 B2B 直连用户
授予控制 - 阻止访问 支持 支持
授予控制 - 需要多重身份验证 支持 受支持,需要配置入站信任设置以接受来自外部组织的 MFA 声明
授予控制 - 需要合规设备 受支持,需要配置入站信任设置以接受来自外部组织的合规设备声明。 受支持,需要配置入站信任设置以接受来自外部组织的合规设备声明。
授予控制 - 需要已加入混合 Microsoft Entra 的设备 受支持,需要配置入站信任设置以接受来自外部组织的已建立混合 Microsoft Entra 联接设备声明 受支持,需要配置入站信任设置以接受来自外部组织的已建立混合 Microsoft Entra 联接设备声明
授予控制 - 需要批准的客户端应用 不支持 不支持
授予控制 - 需要应用保护策略 不支持 不支持
授予控制 - 需要更改密码 不支持 不支持
授予控制 - 使用条款 支持 不支持
会话控制 - 使用应用强制实施的限制 支持 不支持
会话控制 - 使用条件访问应用控制 支持 不支持
会话控制 - 登录频率 支持 不支持
会话控制 - 持久浏览器会话 支持 不支持

Microsoft Entra 外部用户的 MFA

在 Microsoft Entra 跨租户场景中,资源组织可以创建要求所有来宾和外部用户复合 MFA 或设备合规性要求的条件访问策略。 通常情况下,访问资源的 B2B 协作用户需要借助资源租户设置其 Microsoft Entra 多重身份验证。 但是,Microsoft Entra ID 现在提供信任来自其他 Microsoft Entra 租户的 MFA 声明的功能。 通过另一租户启用 MFA 信任可简化 B2B 协作用户的登录过程,并启用 B2B 直接连接用户的访问。

如果已将入站信任设置配置为接受来自 B2B 协作或 B2B 直接连接用户主租户的 MFA 声明,Microsoft Entra ID 会检查用户的身份验证会话。 如果会话包含一个声明,指示在用户的主租户中已满足策略,则向外部用户授予对共享资源的无缝登录权限。

如果未启用 MFA 信任,则 B2B 协作用户和 B2B 直接连接用户的用户体验有所不同:

  • B2B 协作用户:如果资源组织未启用与用户主租户的 MFA 信任,则用户会面临来自资源组织的 MFA 质询。 (流与适用于非 Azure AD 外部用户的 MFA 流相同。)

  • B2B 直连用户:如果资源组织未启用与用户主租户的 MFA 信任,则阻止用户访问资源。 如果要允许与外部组织的 B2B 直连,并且条件访问策略需要 MFA,则必须配置入站信任设置,以便接受组织的 MFA 声明。

详细了解如何为 MFA 配置入站信任设置

适用于非 Azure AD 外部用户的 MFA

对于非 Azure AD 外部用户而言,资源租户始终负责 MFA。 下面的示例显示了一个典型的 MFA 流。 此场景适用于任何标识,包括 Microsoft 帐户 (MSA) 或社交 ID。 在尚未为其主 Microsoft Entra 组织配置信任设置时,此流也适用于 Microsoft Entra 外部用户。

  1. 一家名为 Fabrikam 的公司中的管理员或信息工作者邀请来自另一家名为 Contoso 的公司的用户使用 Fabrikam 的应用。

  2. Fabrikam 的应用配置为在访问时需要 Microsoft Entra 多重身份验证。

  3. 当来自 Contoso 的 B2B 协作用户尝试访问 Fabrikam 的应用时,他们需要完成 Microsoft Entra 多重身份验证质询。

  4. 然后,来宾用户可以使用 Fabrikam 设置 Microsoft Entra 多重身份验证,并选择选项。

Fabrikam 必须具有支持 Microsoft Entra 多重身份验证的足够高级 Microsoft Entra ID 许可证。 然后来自 Contoso 的用户才能使用 Fabrikam 提供的此许可证。 有关 B2B 许可的信息,请参阅 Microsoft Entra 外部 ID 计费模型

注意

MFA 在资源租户中完成,以确保可预测性。 当来宾用户登录时,他们将看到资源租户登录页面在后台显示,他们自己的主租户登录页面和公司徽标在前台显示。

Microsoft Entra 多重身份验证重置(B2B 协作用户的证明)

以下 PowerShell cmdlet 可用于证明或请求 B2B 协作用户进行 MFA 注册。

注意

自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模块已弃用。 若要了解详细信息,请阅读有关弃用的更新。 在此日期之后,对这些模块的支持仅限于到 Microsoft Graph PowerShell SDK 的迁移帮助和安全性修复。 弃用的模块将持续运行至 2025 年 3 月 30 日。

我们建议迁移到 Microsoft Graph PowerShell,以便与 Microsoft Entra ID(以前称为 Azure AD)进行交互。 有关常见迁移问题,请参阅迁移常见问题解答注意:2024 年 6 月 30 日之后,MSOnline 版本 1.0.x 可能会遇到中断。

  1. 连接到 Microsoft Entra ID:

    $cred = Get-Credential
    Connect-MsolService -Credential $cred
    
  2. 使用身份验证方法获取所有用户:

    Get-MsolUser | where { $_.StrongAuthenticationMethods} | select UserPrincipalName, @{n="Methods";e={($_.StrongAuthenticationMethods).MethodType}}
    

    例如:

    Get-MsolUser | where { $_.StrongAuthenticationMethods} | select UserPrincipalName, @{n="Methods";e={($_.StrongAuthenticationMethods).MethodType}}
    
  3. 重置特定用户的 Microsoft Entra 多重身份验证方法,以要求该用户再次设置身份验证方法,例如:

    Reset-MsolStrongAuthenticationMethodByUpn -UserPrincipalName gsamoogle_gmail.com#EXT#@ WoodGroveAzureAD.onmicrosoft.com
    

外部用户的身份验证强度策略

身份验证强度是一种条件访问控制,可用于定义多重身份验证方法的特定组合,外部用户必须完成这些身份验证才能访问资源。 此控制特别适用于限制对组织中的敏感应用的外部访问,因为可以对外部用户强制实施特定的身份验证方法,例如防网络钓鱼方法。

还可以将身份验证强度应用于与之协作或连接的不同类型的来宾或外部用户。 这意味着可以强制实施对 B2B 协作、B2B 直连和其他外部访问方案唯一的身份验证强度要求。

Microsoft Entra ID 提供三种内置身份验证强度

  • 多重身份验证强度
  • 无密码 MFA 强度
  • 防网络钓鱼 MFA 强度

可以使用其中一种内置强度,也可以根据所需的身份验证方法创建自定义身份验证强度策略。

注意

目前,只能将身份验证强度策略应用于使用 Microsoft Entra ID 进行身份验证的外部用户。 对于电子邮件一次性密码、SAML/WS-Fed 和 Google 联合身份验证用户,请使用 MFA 授权控制来要求 MFA。

将身份验证强度策略应用于外部 Microsoft Entra 用户时,该策略与跨租户访问设置中的 MFA 信任设置协同工作,以确定外部用户必须执行 MFA 的位置和方式。 Microsoft Entra 用户首先使用其家庭 Microsoft Entra 租户中的帐户进行身份验证。 然后,当此用户尝试访问资源时,Microsoft Entra ID 会应用身份验证强度条件访问策略,并检查是否启用了 MFA 信任。

在外部用户方案中,履行身份验证强度可接受的身份验证方法会有所不同,具体取决于用户是在主租户还是在资源租户中完成 MFA。 下表指示每个租户中可接受的方法。 如果资源租户选择信任来自外部 Microsoft Entra 组织的声明,则只有“主租户”列中列出的那些声明会被资源租户接受以履行 MFA。 如果资源租户禁用了 MFA 信任,则外部用户必须使用“资源租户”列中列出的方法之一在资源租户中完成 MFA。

表 1. 外部用户的身份验证强度 MFA 方法
身份验证方法 主租户 资源租户
将短信用作第二个因素
语音呼叫
Microsoft Authenticator 推送通知
Microsoft Authenticator 手机登录
OATH 软件令牌
OATH 硬件令牌
FIDO2 安全密钥
Windows Hello 企业版

若要配置将身份验证强度要求应用于外部用户或来宾的条件访问策略,请参阅条件访问:要求适用于外部用户的身份验证强度

外部 Microsoft Entra 用户的使用体验

身份验证强度策略与跨租户访问设置中的 MFA 信任设置协同工作,以确定外部用户必须执行 MFA 的位置和方式。

首先,Microsoft Entra 用户使用自己的帐户在其主租户中进行身份验证。 然后,当此用户尝试访问资源时,Microsoft Entra ID 会应用身份验证强度条件访问策略,并检查是否启用了 MFA 信任。

  • 如果 MFA 信任已启用,Microsoft Entra ID 会检查用户的身份验证会话中是否存在指示用户主租户中已履行 MFA 的声明。 (请参阅表 1 来了解在外部用户的主租户中完成时 MFA 履行可接受的身份验证方法。)如果会话包含表明用户的主租户中已满足 MFA 策略的声明,并且方法满足身份验证强度要求,则允许用户访问。 否则,Microsoft Entra ID 会向用户提出一项挑战,要使用可接受的身份验证方法在主租户中完成 MFA。 必须在主租户中启用 MFA 方法,并且用户必须能够注册该方法。
  • 如果 MFA 信任已禁用,Microsoft Entra ID 会向用户提出一项挑战,要使用可接受的身份验证方法在资源租户中完成 MFA。 (请参阅表 1,了解外部用户履行 MFA 可接受的身份验证方法。)

如果用户无法完成 MFA,或者条件访问策略(如合规设备策略)阻止其注册,则访问被阻止。

设备符合性和已加入混合 Microsoft Entra 的设备策略

组织可以使用条件访问策略来要求由 Microsoft Intune 管理的用户的设备。 此类策略可能会阻止外部用户访问,因为外部用户无法将其非托管设备注册到资源组织。 设备只能由用户的主租户管理。

但是,可以使用设备信任设置取消阻止外部用户,同时仍需要托管设备。 在跨租户访问设置中,可以选择信任来自外部用户主租户的声明,了解用户设备是否符合其设备符合性策略,还是已加入混合 Microsoft Entra。 可以为所有 Microsoft Entra 组织或单个组织设置设备信任设置。

启用设备信任设置后,Microsoft Entra ID 会检查用户的身份验证会话以获取设备声明。 如果会话包含一个设备声明,指示在用户的主租户中已满足策略,则向外部用户授予对共享资源的无缝登录权限。

重要

  • 除非愿意信任来自外部用户主租户的设备符合性或混合 Microsoft Entra 加入状态的声明,否则不建议应用要求外部用户使用托管设备的条件访问策略。

设备筛选器

为外部用户创建条件访问策略时,可以根据 Microsoft Entra ID 中已注册设备的设备属性评估策略。 使用设备筛选器条件,可以使用支持的运算符和属性以及条件访问策略中的其他可用分配条件来指定具体设备。

设备筛选器可与跨租户访问设置结合使用,在其他组中管理的设备上建立策略。 例如,假设要基于特定设备属性阻止来自外部 Microsoft Entra 租户的设备。 可以采取以下步骤来设置基于设备属性的策略:

  • 配置跨租户访问设置,以信任来自该组织的设备声明。
  • 将要用于筛选的设备属性分配给受支持的设备扩展属性之一。
  • 使用设备筛选器创建条件访问策略,阻止访问包含该属性的设备。

详细了解如何使用条件访问筛选设备

移动应用程序管理策略

不建议对外部用户要求应用保护策略。 条件访问授权控制(如“需要已批准的客户端应用”“需要应用保护策略”)需要在资源租户中注册设备。 这些控制仅应用于 iOS 和 Android 设备。 由于用户的设备只能由其主租户管理,因此无法将这些控件应用于外部来宾用户。

基于位置的条件访问

如果邀请组织能够创建定义其合作伙伴组织的受信任 IP 地址范围,则可以执行基于 IP 范围的基于位置的策略

还可以基于地理位置执行策略。

基于风险的条件访问

如果外部来宾用户满足授权控制要求,则执行登录风险策略。 例如,组织可能需要 Microsoft Entra 多重身份验证,以承担中等或高登录风险。 但是,如果某个用户以前没有在资源租户中注册过 Microsoft Entra 多重身份验证,则该用户将被阻止。 这样做是为了防止恶意用户在泄露合法用户密码时注册其自己的 Microsoft Entra 多重身份验证凭据。

但无法在资源租户中解决用户风险策略。 例如,如果需要为高风险来宾用户更改密码,则他们会因为无法在资源目录中重置密码而被阻止。

条件访问客户端应用条件

针对 B2B 来宾用户的客户端应用条件的行为与针对其他类型用户的客户端应用条件的行为是一样的。 例如,你可以阻止来宾用户使用旧版身份验证协议。

条件访问会话控制

针对 B2B 来宾用户的会话控制的行为与针对其他类型用户的会话控制的行为是一样的。

标识保护和用户风险策略

标识保护检测到 Microsoft Entra 用户的凭据遭到入侵,并将可能泄露的用户帐户标记为“有风险”。作为资源租户,可以将用户风险策略应用于外部用户,以阻止有风险的登录。对于外部用户,将在其主目录中评估用户风险。 用户尝试访问资源时,会在资源目录中评估这些用户的实时登录风险。 但是,由于主目录中存在外部用户的标识,因此存在以下限制:

  • 如果外部用户触发 Identity Protection 用户风险策略以强制重置密码,则会阻止这些策略,因为它们无法在资源组织中重置其密码。
  • 资源组织的风险用户报告不会反映外部用户,因为风险评估发生在外部用户的主目录中。
  • 资源组织中的管理员无法消除或修正有风险的外部用户,因为它们无权访问 B2B 用户的主目录。

可以通过在 Microsoft Entra ID 中创建一个组来包含你的组织的所有外部用户,防止基于风险的策略影响外部用户。 然后,将此组添加为内置标识保护用户风险和登录风险策略的排除项,以及使用登录风险作为条件的所有条件访问策略的排除项。

有关详细信息,请参阅标识保护和 B2B 用户

后续步骤

有关详细信息,请参阅以下文章: