你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
自 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 流中,交换中涉及四个参与方:
授权服务器是 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 构建的应用类型。