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

Azure AD B2C:身份验证协议

重要

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

Azure Active Directory B2C(Azure AD B2C)通过支持两种行业标准协议(OpenID Connect 和 OAuth 2.0)为应用提供标识即服务。 该服务符合标准,但这些协议的任何两个实现可能会有细微的差异。

如果通过直接发送和处理 HTTP 请求而不是使用开源库编写代码,本指南中的信息非常有用。 建议先阅读此页面,然后再深入了解每个特定协议的详细信息。 但是,如果你已经熟悉 Azure AD B2C,则可以直接转到 协议参考指南

基础知识

使用 Azure AD B2C 的每个应用都需要在 Azure 门户的 B2C 目录中注册。 应用注册过程收集并分配一些值给应用:

  • 用于唯一标识应用的应用程序 ID

  • 重定向 URI包标识符,可用于将响应定向回应用。

  • 其他一些特定于方案的值。 有关详细信息,请 了解如何注册应用程序

注册应用后,它会通过向终结点发送请求来与 Azure AD B2C 通信:

https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/token

如果使用 自定义域,请将自定义域替换为 {tenant}.b2clogin.com 终结点中的自定义域,例如 contoso.com

在几乎所有 OAuth 和 OpenID Connect 流中,交换中涉及四个参与方:

显示 OAuth 2.0 四个角色的示意图。

  • 授权服务器是 Azure AD B2C 终结点。 它安全地处理与用户信息和访问相关的任何内容。 它还处理流中各方之间的信任关系。 它负责验证用户的标识、授予和撤消对资源的访问权限以及颁发令牌。 它也称为“标识提供者”。

  • 资源所有者通常是最终用户。 它是拥有数据的一方,它有权允许第三方访问该数据或资源。

  • OAuth 客户端是你的应用。 它由其应用程序 ID 标识。 通常作为最终用户与之交互的一方。 它还从授权服务器请求令牌。 资源所有者必须授予客户端访问资源的权限。

  • 资源服务器是资源或数据所在的位置。 它信任授权服务器安全地对 OAuth 客户端进行身份验证和授权。 它还使用持有者访问令牌来确保可以授予对资源的访问权限。

策略和用户流

Azure AD B2C 通过引入策略来扩展标准 OAuth 2.0 和 OpenID Connect 协议。 这些允许 Azure AD B2C 执行比简单的身份验证和授权要多得多。

为了帮助你设置最常见的标识任务,Azure AD B2C 门户包括称为 用户流的预定义可配置策略。 用户流完全描述了使用者标识体验,包括注册、登录和配置文件编辑。 可以在管理 UI 中定义用户流。 可以使用 HTTP 身份验证请求中的特殊查询参数执行它们。

策略和用户流不是 OAuth 2.0 和 OpenID Connect 的标准功能,因此你应该花时间了解它们。 有关详细信息,请参阅 Azure AD B2C 用户流参考指南

令牌

OAuth 2.0 和 OpenID Connect 的 Azure AD B2C 实现广泛使用了持有者令牌,包括表示为 JSON Web 令牌 (JWT) 的持有者令牌。 持有者令牌是一个轻型安全令牌,用于授予对受保护资源的“持有者”访问权限。

持有者是可以提供令牌的任何一方。 Azure AD B2C 必须先对参与方进行身份验证,然后才能接收持有者令牌。 但是,如果未采取所需的步骤来保护传输和存储中的令牌,则可以被意外方截获和使用。

某些安全令牌具有内置机制,可阻止未经授权的方使用它们,但持有者令牌没有此机制。 它们必须在安全通道中传输,例如传输层安全性(HTTPS)。

如果持有者令牌在安全通道外部传输,恶意方可以使用中间人攻击获取令牌,并使用它获取对受保护资源的未经授权的访问。 存储或缓存持有者令牌以供以后使用时,同样的安全原则适用。 始终确保应用以安全方式传输和存储持有者令牌。

有关额外的持有者令牌安全注意事项,请参阅 RFC 6750 第 5 节

有关 Azure AD B2C 中使用的不同类型的令牌的详细信息,请参阅 Azure AD B2C 令牌参考

协议

准备好查看一些示例请求后,可以从以下教程之一开始。 每个方案对应于特定的身份验证方案。 如果您需要帮助来确定哪种流程适合您,请查看 您可以使用 Azure AD B2C 构建的应用类型