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

Azure Active Directory B2C 的建议和最佳做法

重要

自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息

以下最佳做法和建议涵盖了将 Azure Active Directory (Azure AD) B2C 集成到现有或新的应用程序环境中的一些主要方面。

基础知识

最佳做法 DESCRIPTION
创建紧急访问帐户 此紧急访问帐户可帮助你在需要凭据时无法联系到唯一管理员等情况下访问 Azure AD B2C 租户。 了解如何创建紧急访问帐户
为大多数方案选择用户流 Azure AD B2C 的标识体验框架是服务的核心优势。 策略完全描述了标识体验,例如注册、登录或配置文件编辑。 为了帮助你设置最常见的标识任务,Azure AD B2C 门户包括称为用户流的预定义可配置策略。 借助用户流,只需单击几下鼠标即可创建出色的用户体验。 了解何时使用用户流与自定义策略
应用注册 必须在 Azure AD B2C 中注册每个要保护的应用程序(Web、本机)和 API。 如果应用同时具有 iOS 和 Android 的 Web 版本和本机版本,则可以在 Azure AD B2C 中使用相同的客户端 ID 将其注册为一个应用程序。 了解如何 注册 OIDC、SAML、Web 和本机应用。 详细了解 可在 Azure AD B2C 中使用的应用程序类型
转变为按月活跃用户计费 Azure AD B2C 已从每月活动身份验证转移到每月活动用户(MAU)计费。 大多数客户都会发现此模型经济高效。 详细了解每月活跃用户计费
遵循安全最佳做法 存在持续和不断演变的威胁和攻击,并且与所有拥有的资源一样,Azure AD B2C 部署应遵循安全性的最佳做法,包括有关实施 WAF(针对 DDOS 和机器人等威胁的防御)和其他深度最佳防御指南 B2C 安全体系结构的指导。

规划和设计

定义应用程序和服务体系结构、清单当前系统,并计划迁移到 Azure AD B2C。

最佳做法 DESCRIPTION
构建端到端解决方案 规划 Azure AD B2C 集成时,请包括所有应用程序的依赖项。 请考虑环境中当前或可能需要添加到解决方案(例如 Azure Functions、客户关系管理 (CRM) 系统、Azure API 管理网关和存储服务)的所有服务和产品。 考虑所有服务的安全性和可伸缩性。
记录用户的体验 详细说明客户可在应用程序中体验的所有用户旅程。 包括客户在与应用程序的标识和配置文件交互时,可能会看到的每个屏幕和任何分支流。 在规划中包括可用性、辅助功能和本地化。
选择正确的身份验证协议 有关不同应用程序方案及其建议的身份验证流的细分,请参阅 方案和支持的身份验证流
试运行概念证明 (POC) 端到端用户体验 我们的Microsoft代码示例 和社区 示例开始。
创建迁移计划 提前规划可以使迁移更加顺利。 详细了解 用户迁移
可用性与安全性 解决方案必须在应用程序可用性与组织的可接受的风险级别之间取得适当的平衡。
将本地依赖项移动到云 为了帮助确保可复原的解决方案,请考虑将现有应用程序依赖项移到云中。
将现有应用迁移到 b2clogin.com login.microsoftonline.com 的弃用将在 2020 年 12 月 4 日对所有 Azure AD B2C 租户生效。 了解详细信息
使用标识保护和条件访问 使用这些功能可以显著提高对有风险的身份验证和访问策略的控制。 需要 Azure AD B2C Premium P2。 了解详细信息
租户规模 您需要根据 Azure AD B2C 租户大小进行规划。 默认情况下,Azure AD B2C 租户可以容纳 125 万个对象(用户帐户和应用程序)。 通过向租户添加自定义域并进行验证,可以将此限制增加到525万个对象。 如果还需要更大的租户规模,则需要联系客户支持

执行

在实施阶段,请考虑以下建议。

最佳做法 DESCRIPTION
使用适用于 Visual Studio Code 的 Azure AD B2C 扩展编辑自定义策略 下载 Visual Studio Code,并从 Visual Studio Code 市场 获取此社区开发的扩展。 虽然不是官方Microsoft产品,但适用于 Visual Studio Code 的 Azure AD B2C 扩展包含多个功能,可帮助更轻松地使用自定义策略。
了解如何对 Azure AD B2C 进行故障排除 了解如何在开发过程中 对自定义策略进行故障排除 。 了解正常身份验证流的外观,以及使用工具来发现异常和错误。 例如,使用 Application Insights 查看用户旅程的输出日志。
利用经过验证的自定义策略范式库 查找增强型 Azure AD B2C 客户标识和访问管理 (CIAM) 用户旅程的示例

正在测试

测试和自动化 Azure AD B2C 实现。

最佳做法 DESCRIPTION
考虑全局流量 使用来自不同全局地址的流量源来测试性能和本地化要求。 确保所有 HTML、CSS 和依赖项都能满足性能需求。
功能和 UI 测试 测试端到端的用户流。 使用 Selenium、VS Web Test 等工具每隔几分钟添加一次综合测试。
渗透测试 在使用解决方案之前,请执行渗透测试练习来验证所有组件是否安全,包括任何第三方依赖项。 验证是否已使用访问令牌保护 API,并为应用程序方案使用正确的身份验证协议。 详细了解 渗透测试和Microsoft 云统一渗透测试参与规则
A/B 测试 在向所有用户推出之前,使用一小部分随机用户来试运行新功能。 在 Azure AD B2C 中启用 JavaScript 后,可以与 A/B 测试工具(例如 Optimizely、Clarity 等)集成。
负载测试 Azure AD B2C 可以缩放,但应用程序仅在其所有依赖项均可缩放时才能缩放。 建议在生产模式下对策略进行负载测试,即将自定义策略文件的 <TrustFrameworkPolicy> 元素中的 DeploymentMode 属性设置为 Production。 此设置可确保测试期间的性能与生产级别性能匹配。 对 API 和 CDN 进行负载测试。 详细了解如何通过开发人员最佳做法实现复原能力
限制 如果在短时间内从同一源发送过多请求,Azure AD B2C 会限制流量。 在负载测试时使用多个流量源,并在应用程序中正常处理 AADB2C90229 错误代码。
自动化 使用持续集成和交付(CI/CD)管道自动执行测试和部署,例如 Azure DevOps

运营

管理 Azure AD B2C 环境。

最佳做法 DESCRIPTION
创建多个环境 为便于操作和部署及发布,请为开发、测试、预生产和生产创建单独的环境。 为每个租户创建 Azure AD B2C 租户。
对自定义策略使用版本控制 请考虑对 Azure AD B2C 自定义策略使用 GitHub、Azure Repos 或其他基于云的版本控制系统。
使用 Microsoft 图形 API 自动管理 B2C 租户 Microsoft图形 API:
管理 标识体验框架 (自定义策略)
密钥
用户流
与 Azure DevOps 集成 CI/CD 管道使在不同环境之间移动代码变得简单,并确保始终保持生产就绪。
部署自定义策略 Azure AD B2C 依赖于缓存向最终用户提供性能。 使用任何方法部署自定义策略时,用户最多需要 30 分钟的 延迟才能看到更改。 由于此行为,在部署自定义策略时,请考虑以下做法:
- 如果要部署到开发环境,请将 DeploymentMode 自定义策略文件的 <TrustFrameworkPolicy> 元素中的属性设置为 Production
- 当应用中的流量较低时,将更新的策略文件部署到生产环境。
- 部署到生产环境以更新现有策略文件时,请使用新名称上传更新的文件,这些文件充当策略的新版本。 然后,更新应用对新名称/版本的引用。 可以随后删除旧的策略文件,或者将其保留为最后一个已知的良好配置,以便轻松回滚。
- 如果需要部署到生产环境以在不进行版本控制的情况下更新现有策略文件,请遵循一些简单的规则使新策略向后兼容旧策略。 如果需要更改技术配置文件、声明或SubJourney,请创建新版本,发布策略,并等待 30 分钟,以便 Azure AD B2C 缓存获取新版本。 然后,在后续更新中,进行更改以使用新版本并执行另一个策略更新。 再等待 30 分钟,然后可以根据需要删除旧版本的元素。 确保所有业务逻辑都在 SubJourneys 内部。
- 可以在生产环境中将 DeploymentMode 设置为 Development 绕过缓存行为。 但是,我们不建议这样做。 如果使用 Application Insights 收集 Azure AD B2C 日志,则会收集发送到标识提供者和从标识提供者发送的所有声明,这是一种安全性和性能风险。
部署应用注册更新 在 Azure AD B2C 租户中修改应用程序注册(例如更新应用程序的重定向 URI)时,预计更改在生产环境中生效的延迟最长 为 2 小时(3600 秒 )。 当应用中的流量较低时,建议在生产环境中修改应用程序注册。
与 Azure Monitor 集成 审核日志事件 仅保留七天。 与 Azure Monitor 集成 以保留日志以供长期使用,或与第三方安全信息和事件管理(SIEM)工具集成,以便深入了解环境。
设置实时警报和监控 使用 Application Insights 跟踪 Azure AD B2C 中的用户行为

支持和状态更新

随时了解服务状态并查找支持选项。

最佳做法 DESCRIPTION
服务更新 随时了解 Azure AD B2C 产品更新和公告。
Microsoft 支持部门 提交对 Azure AD B2C 技术问题的支持请求。 计费和订阅管理支持免费提供。
Azure 状态 查看所有 Azure 服务的当前运行状况。