重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
开始之前,请使用此页顶部的“选择策略类型”选择器来选择要设置的策略类型。 Azure Active Directory B2C 提供了两种定义用户如何与应用程序交互的方法:通过预定义的用户流,或者通过可完全配置的自定义策略。 对于每种方法,本文中所需的步骤都不同。
Azure Active Directory B2C (Azure AD B2C) 直接集成了 Microsoft Entra 多重身份验证,因此你可以为应用程序中的注册和登录体验增加另一层安全性。 如果已经创建了注册和登录用户流,仍然可以启用多重身份验证。
使用此功能应用程序可以处理多个方案,例如:
- 要求多重身份验证访问一个应用程序,但不需要它访问另一个应用程序。 例如,客户可以使用社交或本地帐户登录汽车保险应用程序,但是必须在访问在同一目录中注册的家庭保险应用程序之前验证电话号码。
- 要求多重身份验证通常访问应用程序,但不需要它访问其中的敏感部分。 例如,客户可以使用社交或本地帐户登录银行应用程序并查询帐户余额,但必须在尝试进行电子转账前验证电话号码。
先决条件
- 创建用户流,以便用户能够注册并登录应用程序。
- 注册 Web 应用程序。
- 完成 Active Directory B2C 中的自定义策略入门中的步骤。 本教程指导你如何更新自定义策略文件以使用 Azure AD B2C 租户配置。
- 注册 Web 应用程序。
验证方法
使用条件访问,根据你作为管理员可做出的配置决策,用户可能会受到 MFA 的质询,也可能不会。 多重身份验证的方法包括:
- 电子邮件 - 在登录期间,系统会向用户发送包含一次性密码 (OTP) 的验证电子邮件。 用户提供在电子邮件中发送到应用程序的 OTP 代码。
- 短信或电话呼叫 - 在用户首次注册或登录期间,系统会要求用户提供并验证电话号码。 在后续登录期间,系统会提示用户选择“发送代码”或“呼叫我”选项。 系统根据用户的选择,向已验证的电话号码发送短信或拨打电话,以验证用户的身份。 用户要么提供通过短信发送的 OTP 代码,要么接听电话。
- 仅电话呼叫 - 与短信或电话呼叫选项的验证方式相同,但仅拨打电话。
- 仅短信 - 与短信或电话呼叫选项的验证方式相同,但仅发送短信。
- 验证器应用 - TOTP - 用户必须在他们拥有的设备上安装支持基于时间的一次性密码 (TOTP) 验证的验证器应用,例如 Microsoft Authenticator 应用。 在首次注册或登录期间,用户扫描 QR 码或使用验证器应用手动输入代码。 在后续登录期间,用户键入验证器应用上显示的 TOTP 代码。 请参阅如何设置 Microsoft Authenticator 应用。
重要
验证器应用 - TOTP 提供的安全性比短信/电话更高,而电子邮件是最不安全的。 基于短信/电话的多重身份验证产生的费用与普通 Azure AD B2C MAU 定价模型不同。
设置多重身份验证
登录到 Azure 门户。
如果有权访问多个租户,请选择顶部菜单中的“设置”图标,切换到“目录 + 订阅”菜单中的 Azure AD B2C 租户。
在左侧菜单中,选择“Azure AD B2C”。 或者,选择“所有服务”并搜索并选择“Azure AD B2C”。
选择“用户流”。
选择要为其启用 MFA 的用户流。 例如,B2C_1_signinsignup。
选择 属性。
在“多重身份验证”部分,选择所需的“方法类型”。 然后,在“MFA 强制”下选择一个选项:
关 - 决不在登录期间强制执行 MFA,也不在注册和登录期间提示用户注册 MFA。
“始终启用” - 无论条件访问设置如何,始终需要 MFA。 在注册期间,系统会提示用户注册 MFA。 在登录期间,如果用户尚未注册 MFA,系统会提示他们注册。
“条件性” - 在注册和登录期间,系统会提示用户注册 MFA(包括新用户和未注册 MFA 的现有用户)。 在登录期间,仅在活动的条件访问策略评估需要 MFA 时强制执行 MFA:
- 如果结果是没有风险的 MFA 质询,则强制实施 MFA。 如果用户尚未注册 MFA,系统会提示他们注册。
- 如果结果是因风险导致的 MFA 质询,而且用户未注册 MFA,则会阻止登录。
选择“保存”。 现在已为此用户流启用 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 选项,请从 下载自定义策略文件,然后使用你的 Azure AD B2C 租户名称更新 XML 文件。
https://github.com/azure-ad-b2c/samples/tree/master/policies/totp
确保包含 SocialAndLocalAccounts 初学者包中的TrustFrameworkExtensions.xml
、TrustFrameworkLocalization.xml
和TrustFrameworkBase.xml
XML 文件。 - 将 [页面布局] 更新到版本
2.1.14
。 有关详细信息,请参阅选择页面布局。
使用验证器应用在 TOTP 中注册用户(适用于最终用户)
当 Azure AD B2C 应用程序使用 MFA 的 TOTP 选项时,最终用户需要使用验证器应用来生成 TOTP 代码。 用户可以使用 Microsoft Authenticator 应用或任何其他支持 TOTP 验证的验证器应用。 如果使用 Microsoft Authenticator 应用,Azure AD B2C 系统管理员需要建议最终用户使用以下步骤设置 Microsoft Authenticator 应用:
- 在 Android 或 iOS 移动设备上下载并安装 Microsoft Authenticator 应用。
- 打开要求使用 TOTP 执行 MFA 的 Azure AD B2C 应用程序(例如 Contoso webapp),然后通过输入所需的信息完成登录或注册。
- 如果系统要求通过验证器应用扫描 QR 码来注册帐户,请在手机上打开 Microsoft Authenticator 应用,然后在右上角选择“...”菜单图标(适用于 Android)或 菜单图标(适用于 iOS)。+
- 选择“+ 添加帐户”。
- 选择“其他帐户(Google、Facebook 等)”,然后扫描 Azure AD B2C 应用程序中显示的 QR 码以注册帐户。 如果无法扫描 QR 码,可以手动添加帐户:
- 在手机上的 Microsoft Authenticator 应用中,选择“或手动输入代码”。
- 在 Azure AD B2C 应用程序中,选择“仍遇到问题?”。 这会显示“帐户名”和“机密”。
- 在 Microsoft Authenticator 应用中输入“帐户名称”和“机密”字段,然后选择“完成”。
- 在 Azure AD B2C 应用程序中,选择“继续”。
- 在“输入代码”中,输入 Microsoft Authenticator 应用中显示的代码。
- 选择“ 验证”。
- 在后续登录到应用程序期间,请键入 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 验证器应用注册
- 登录到 Azure 门户。
- 如果有权访问多个租户,请选择顶部菜单中的“设置”图标,切换到“目录 + 订阅”菜单中的 Azure AD B2C 租户。
- 在左侧菜单中,选择“用户”。
- 搜索并选择要删除其 TOTP 验证器应用注册的用户。
- 在左侧菜单中,选择“身份验证方法”。
- 在“可用的身份验证方法”下,找到“软件 OATH 令牌”,然后选择旁边的“...”菜单。 如果未看到此界面,请选择选项“切换到新的用户身份验证方法体验!单击此处立即使用“切换到新的身份验证方法体验。
- 选择“删除”,然后选择“是”进行确认。
使用 Microsoft Graph API 删除 TOTP 验证器应用注册
了解如何使用 Microsoft Graph API 删除用户的软件 OATH 令牌身份验证方法。
按国家/地区划分的短信定价层
下表提供有关不同国家或地区基于短信的身份验证服务的不同定价层的详细信息。 有关定价详细信息,请参阅 Azure AD B2C 定价。
短信是一项附加功能,需要链接的订阅。 如果订阅过期或被取消,最终用户将无法再使用短信进行身份验证,这可能会根据 MFA 策略阻止他们登录。
层 | 国家/地区 |
---|---|
手机身份验证低成本 | 澳大利亚、巴西、文莱、加拿大、智利、中国、哥伦比亚、塞浦路斯、北马其顿、波兰、葡萄牙、韩国、泰国、图尔基耶、美国 |
手机身份验证中低成本 | 格陵兰、阿尔巴尼亚、美属萨摩亚、奥地利、巴哈马、 巴林、波斯尼亚 & 黑塞哥维那、博茨瓦纳、哥斯达黎加、捷克共和国、丹麦、爱沙尼亚、法罗群岛、芬兰、法国、希腊、香港特别行政区、匈牙利、冰岛、爱尔兰、意大利、日本、拉脱维亚、立陶宛、卢森堡、澳门特区、马耳他、墨西哥、密克罗尼西亚、摩尔多瓦、纳米比亚、新西兰、尼加拉瓜、挪威、罗马尼亚、圣托梅和普林西比、塞浦路斯、斯洛伐克、所罗门群岛、西班牙、 瑞典、瑞士、台湾、英国、美国维尔京群岛、乌拉圭 |
手机身份验证中高成本 | 安道尔、安哥拉、安圭拉、南极洲、安提瓜和巴布达、阿根廷、亚美尼亚、阿鲁巴、巴巴多斯、比利时、贝宁、玻利维亚、博内尔、库拉索、萨巴、圣尤斯特歇斯和圣马丁、英属维尔京群岛、保加利亚、布基纳法索、喀麦隆、开曼群岛、中非共和国、库克群岛、科特迪瓦、克罗地亚、迪戈加西亚、吉布提、多米尼加共和国、厄瓜多尔、萨尔瓦多、厄立特里亚、福克兰群岛、斐济、法属圭亚那、法国波利尼西亚、冈比亚、格鲁吉亚、德国、直布罗陀、格林纳达、瓜德罗普、关岛、几内亚、圭亚那、洪都拉斯、印度、肯尼亚、基里巴斯、老挝、利比里亚、马来西亚、马绍尔群岛、马提尼克岛、毛里求斯、摩纳哥、黑山、蒙特塞拉特、荷兰、新喀里多尼亚、纽埃、阿曼、帕劳、巴拿马、巴拉圭、秘鲁、波多黎各、留尼汪、卢旺达、圣赫勒拿、阿森松与特里斯坦达库尼亚、圣基茨和尼维斯、圣卢西亚、圣皮埃尔和密克隆群岛,圣文森特和格林纳丁斯、塞班岛、萨摩亚、圣马力诺、沙特阿拉伯、圣马丁、斯洛文尼亚、南非、南苏丹、斯威士兰(新名字为斯威士兰王国)、东帝汶、托克劳、汤加、特克斯和凯科斯群岛、图瓦卢、阿拉伯联合酋长国、瓦努阿图、委内瑞拉、越南、瓦利斯和富图纳 |
手机身份验证高成本 | 列支敦士登、百慕大、卡波维德、柬埔寨、刚果民主共和国、 多米尼克、埃及、赤道几内亚、加纳、危地马拉、巴布亚新几内亚、以色列、牙买加、牙买加、科索沃、毛里塔尼亚、马尔代夫、马里、毛里塔尼亚、摩洛哥、莫桑比克、巴布亚新几内亚、菲律宾、卡塔尔、塞拉利昂、特立尼达 & 多巴哥、乌克兰、津巴布韦、阿富汗、阿尔及利亚、阿塞拜疆、孟加拉国、白俄罗斯、博茨瓦纳、布隆迪、乍得、科摩罗、刚果、埃塞俄比亚、加蓬共和国、海地、印度尼西亚、伊拉克、约旦、 科威特、吉尔吉斯斯坦、黎巴嫩、利比亚、马达加斯加、马拉维、蒙古、缅甸、瑙鲁、尼泊尔、尼日尔、尼日利亚、巴基斯坦、巴勒斯坦民族权力机构、俄罗斯、塞内加尔、塞尔维亚、索马里、斯里兰卡、苏丹、塔吉克斯坦、坦桑尼亚、多哥共和国、突尼斯、土库曼斯坦、乌干达、乌兹别克斯坦、也门、赞比亚 |