使用 Azure AD B2C 构建可复原的最终用户体验
注册和登录最终用户体验由以下几个元素组成:
- 用户与之交互的界面 - 例如 CSS、HTML 和 JavaScript
- 用户流和你创建的自定义策略,例如注册、登录和配置文件编辑
- 应用程序的标识提供者 (IDP),例如本地帐户用户名/密码、Microsoft Outlook、Facebook 和 Google
用户流和自定义策略
为帮助你设置最常见的标识任务,Azure AD B2C 提供了内置的可配置用户流。 你还可以构建你自己的自定义策略,这些策略为你提供最大的灵活性。 但是,我们建议使用自定义策略来应对复杂的场景。
选择用户流或自定义策略
选择满足业务需求的内置用户流。 Microsoft 会测试内置流,因此可以最大程度地减少用于验证策略级功能、性能或缩放的测试。 但需要测试应用程序的功能、性能和缩放。
使用自定义策略确保对功能、性能或缩放进行策略级测试。 执行应用程序级测试。
若要了解详细信息,可以比较用户流和自定义策略。
选择多个 IdP
使用外部 IdP(例如 Facebook)时,如果外部 IdP 不可用,请创建回退计划。
设置多个 IdP
在外部 IdP 注册过程中,请包括已验证的标识声明,例如用户手机号码或电子邮件地址。 将已验证的声明提交到基础 Azure AD B2C 目录实例。 如果外部 IdP 不可用,则恢复使用已验证的标识声明,并回退到使用电话号码作为身份验证方法。 另一个选项是向用户发送一次性密码 (OTP),以允许登录。
可以生成备用身份验证路径:
- 配置注册策略,以允许通过本地帐户和外部 IDP 进行注册。
- 配置一个配置文件策略,以允许用户在登录后将其他标识关联到帐户。
- 通知并允许用户在中断期间切换到备用 IDP。
多重身份验证的可用性
如果使用电话服务进行多重身份验证,请考虑备选服务提供商。 本地电话服务提供商可能会遇到服务中断。
选择备用多重身份验证
Azure AD B2C 服务有一个基于电话的 MFA 提供商,以提供基于时间的一次性密码 (OTP)。 它以语音呼叫和短信形式发送到用户的预注册电话号码。
使用用户流时,有两种方法可构建复原能力:
更改用户流配置:在基于电话的 OTP 发送中断期间,将 OTP 发送方法更改为电子邮件。 重新部署用户流。
更改应用程序:对于标识任务(例如,注册和登录),定义两组用户流。 将第一组配置为使用基于电话的 OTP,将第二组配置为使用电子邮件 OTP。 在基于电话的 OTP 发送中断期间,请从第一组用户流切换为第二组,用户流保持不变。
如果使用自定义策略,有四种方法可构建复原能力。 列表按复杂性顺序列出。 重新部署更新的策略。
允许用户选择电话 OTP 或电子邮件 OTP:公开这两个选项,使用户能够自行选择。 不要更改策略或应用程序。
在电话 OTP 和电子邮件 OTP 之间动态切换:在注册时收集电话和电子邮件信息。 定义自定义策略,以在电话中断期间有条件地切换到电子邮件 OTP。 不要更改策略或应用程序。
使用身份验证应用:更新自定义策略以使用身份验证应用。 如果 MFA 是电话或电子邮件 OTP,请重新部署自定义策略并使用身份验证应用。
注意
用户在注册期间配置 Authenticator 集成。
安全问题:如果上述方法均不适用,请使用安全问题。 这些问题适用于加入期间的用户或配置文件编辑。 答案存储在单独的数据库中。 虽然这种方法不满足“你拥有的某样东西”(例如电话)这样的 MFA 要求,但它是“你知道的某样东西”。
内容分发网络
内容分发网络 (CDN) 具有更好的性能,并且用来存储自定义用户流 UI 比 Blob 存储更便宜。 网页内容来自高可用性服务器分布在不同地理位置的网络。
请定期通过端到端方案和负载测试来测试 CDN 的可用性和内容分发性能。 对于促销或节假日流量导致的激增,请修改负载测试的估算值。