你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Active Directory B2C 中启用多重身份验证

开始之前,可以使用“选择策略类型”选择器来选择要设置的策略类型。 Azure Active Directory B2C 提供了两种定义用户如何与应用程序交互的方法:通过预定义的用户流,或者通过可完全配置的自定义策略。 对于每种方法,本文中所需的步骤都不同。

Azure Active Directory B2C (Azure AD B2C) 直接集成了 Microsoft Entra 多重身份验证,因此你可以为应用程序中的注册和登录体验增加另一层安全性。 无需编写任何代码即可启用多重身份验证。 如果已经创建了注册和登录用户流,仍然可以启用多重身份验证。

此功能有助于应用程序处理以下情况:

  • 不需要多重身份验证即可访问一个应用程序,但需要多重身份验证才能访问另一个应用程序。 例如,客户可以使用社交或本地帐户登录汽车保险应用程序,但是必须在访问在同一目录中注册的家庭保险应用程序之前验证电话号码。
  • 通常不需要多重身份验证即可访问一个应用程序,但需要它才能访问其中的敏感部分。 例如,客户可以使用社交或本地帐户登录银行应用程序并查询帐户余额,但必须在尝试进行电子转账前验证电话号码。

先决条件

验证方法

使用条件访问,根据你作为管理员可做出的配置决策,用户可能会受到 MFA 的质询,也可能不会。 多重身份验证的方法包括:

  • 电子邮件 - 在登录期间,系统会向用户发送包含一次性密码 (OTP) 的验证电子邮件。 用户提供该电子邮件中发送的 OTP 代码。
  • 短信或电话呼叫 - 在用户首次注册或登录期间,系统会要求用户提供并验证电话号码。 在后续登录期间,系统会提示用户选择“发送代码”或“呼叫我”电话 MFA 选项。 系统根据用户的选择,向已验证的电话号码发送短信或拨打电话,以验证用户的身份。 用户要么提供通过短信发送的 OTP 代码,要么接听电话。
  • 仅电话呼叫 - 与短信或电话呼叫选项的验证方式相同,但仅拨打电话。
  • 仅短信 - 与短信或电话呼叫选项的验证方式相同,但仅发送短信。
  • 验证器应用 - TOTP - 用户必须在他们拥有的设备上安装支持基于时间的一次性密码 (TOTP) 验证的验证器应用,例如 Microsoft Authenticator 应用。 在首次注册或登录期间,用户扫描 QR 码或使用验证器应用手动输入代码。 在后续登录期间,用户键入验证器应用上显示的 TOTP 代码。 请参阅如何设置 Microsoft Authenticator 应用

重要

验证器应用 - TOTP 提供的安全性比短信/电话更高,而电子邮件是最不安全的。 基于短信/电话的多重身份验证产生的费用与普通 Azure AD B2C MAU 定价模型不同

设置多重身份验证

  1. 登录 Azure 门户

  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,切换到“目录 + 订阅”菜单中的 Azure AD B2C 租户

  3. 在左侧菜单中,选择“Azure AD B2C”。 或者,选择“所有服务”并搜索并选择“Azure AD B2C”。

  4. 选择“用户流”

  5. 选择要为其启用 MFA 的用户流。 例如,B2C_1_signinsignup

  6. 选择“属性”。

  7. 在“多重身份验证”部分,选择所需的“方法类型”。 然后,在“MFA 强制”下选择一个选项:

    • - 决不在登录期间强制执行 MFA,也不在注册和登录期间提示用户注册 MFA。

    • “始终启用” - 无论条件访问设置如何,始终需要 MFA。 在注册期间,系统会提示用户注册 MFA。 在登录期间,如果用户尚未注册 MFA,系统会提示他们注册。

    • “条件性” - 在注册和登录期间,系统会提示用户注册 MFA(包括新用户和未注册 MFA 的现有用户)。 在登录期间,仅在活动的条件访问策略评估需要 MFA 时强制执行 MFA:

      • 如果结果是没有风险的 MFA 质询,则强制实施 MFA。 如果用户尚未注册 MFA,系统会提示他们注册。
      • 如果结果是因风险导致的 MFA 质询,而且用户未注册 MFA,则会阻止登录。

    注意

    • 随着条件访问在 Azure AD B2C 中正式发布,现在系统会在注册期间提示用户注册 MFA 方法。 在正式发布之前创建的任何注册用户流都不会自动反映这一新行为,但你可以通过创建新的用户流来包括该行为。
    • 如果选择“条件性”,则还需要 用户流添加条件访问,并指定要应用策略的应用。
    • 在默认情况下,对于注册用户流,多重身份验证处于禁用状态。 你可以在具有电话注册的用户流中启用 MFA,但是,由于使用电话号码作为主标识符,因此,对于第二个身份验证因素,只提供电子邮件一次性密码这一个选项。
  8. 选择“保存”。 现在已为此用户流启用 MFA。

可以使用“运行用户流” 来验证体验。 确认以下场景:

在多重身份验证步骤发生之前,在租户中创建了一个客户帐户。 在执行此步骤期间,会要求客户提供一个电话号码并对其进行验证。 如果验证成功,则会将电话号码附加到帐户供以后使用。 即使客户取消或退出登录,也可能会要求客户在下次登录时再次验证电话号码(启用了多重身份验证时)。

若要启用多重身份验证,请从 GitHub 获取自定义策略初学者包,如下所示:

  • 下载 .zip 文件或从 https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack 克隆存储库,然后使用你的 Azure AD B2C 租户名称更新 SocialAndLocalAccountsWithMFA 初学者包中的 XML 文件。 SocialAndLocalAccountsWithMFA 启用社交和本地登录选项,以及多重身份验证选项,但“Authenticator 应用 - TOTP”选项除外。
  • 若要支持“Authenticator 应用 - TOTP”MFA 选项,请从 https://github.com/azure-ad-b2c/samples/tree/master/policies/totp 下载自定义策略文件,然后使用你的 Azure AD B2C 租户名称更新 XML 文件。 确保包含 SocialAndLocalAccounts 初学者包中的 TrustFrameworkExtensions.xmlTrustFrameworkLocalization.xmlTrustFrameworkBase.xml XML 文件。
  • 将 [页面布局] 更新到版本 2.1.14。 有关详细信息,请参阅选择页面布局

使用验证器应用在 TOTP 中注册用户(适用于最终用户)

当 Azure AD B2C 应用程序使用 TOTP 选项启用 MFA 时,最终用户需要使用验证器应用来生成 TOTP 代码。 用户可以使用 Microsoft Authenticator 应用或任何其他支持 TOTP 验证的验证器应用。 Azure AD B2C 系统管理员需要建议最终用户使用以下步骤来设置 Microsoft Authenticator 应用:

  1. 在 Android 或 iOS 移动设备上下载并安装 Microsoft Authenticator 应用
  2. 打开要求使用 TOTP 执行 MFA 的应用程序(例如 Contoso webapp),然后通过输入所需的信息完成登录或注册。
  3. 如果系统要求通过验证器应用扫描 QR 码来注册帐户,请在手机上打开 Microsoft Authenticator 应用,然后在右上角选择“...”菜单图标(适用于 Android)或“+”菜单图标(适用于 iOS)。
  4. 选择“+ 添加帐户”。
  5. 选择“其他帐户(Google、Facebook 等)”,然后扫描应用程序(例如 Contoso webapp)中显示的 QR 码以注册帐户。 如果无法扫描 QR 码,可以手动添加帐户:
    1. 在手机上的 Microsoft Authenticator 应用中,选择“或手动输入代码”。
    2. 在应用程序(例如 Contoso webapp)中,选择“仍有问题?”。 这会显示“帐户名”和“机密”。
    3. 在 Microsoft Authenticator 应用中输入“帐户名称”和“机密”字段,然后选择“完成”。
  6. 在应用程序(例如 Contoso webapp)中,选择“继续”。
  7. 在“输入代码”中,输入 Microsoft Authenticator 应用中显示的代码。
  8. 选择“验证” 。
  9. 在后续登录到应用程序期间,请键入 Microsoft Authenticator 应用中显示的代码。

了解 OATH 软件令牌

删除用户的 TOTP 验证器注册(适用于系统管理员)

在 Azure AD B2C 中,可以删除用户的 TOTP 验证器应用注册。 然后,用户需要重新注册其帐户才能再次使用 TOTP 身份验证。 若要删除用户的 TOTP 注册,可以使用 Azure 门户Microsoft Graph API

注意

  • 从 Azure AD B2C 中删除某个用户的 TOTP 验证器应用注册不会在 TOTP 验证器应用中删除该用户的帐户。 在用户尝试重新注册之前,系统管理员需要指示用户手动从 TOTP 验证器应用中删除其帐户。
  • 如果用户意外地从 TOTP 验证器应用中删除了其帐户,他们需要通知系统管理员或应用所有者,这两个角色可以从 Azure AD B2C 中删除用户的 TOTP 验证器注册,使用户能够重新注册。

使用 Azure 门户删除 TOTP 验证器应用注册

  1. 登录 Azure 门户
  2. 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,从“目录 + 订阅”菜单中切换到你的 Azure AD B2C 租户。
  3. 在左侧菜单中,选择“用户”。
  4. 搜索并选择要删除其 TOTP 验证器应用注册的用户。
  5. 在左侧菜单中,选择“身份验证方法”。
  6. 在“可用的身份验证方法”下,找到“软件 OATH 令牌”,然后选择旁边的“...”菜单。 如果未看到此界面,请选择“切换到新的用户身份验证方法体验! 单击此处立即使用”以切换到新的身份验证方法体验。
  7. 选择“删除”,然后选择“是”进行确认 。

User authentication methods

使用 Microsoft Graph API 删除 TOTP 验证器应用注册

了解如何使用 Microsoft Graph API 删除用户的软件 OATH 令牌身份验证方法