Azure AD B2C:常见问题 (FAQ)

此页面解答了有关 Azure Active Directory B2C (Azure AD B2C) 的常见问题。 请随时返回查看更新信息。

为什么我在 Azure 门户中无法访问 Azure AD B2C 扩展?

Microsoft Entra 扩展无法为你工作有两个常见原因。 Azure AD B2C 要求你在目录中具备全局管理员的用户角色。 如果你认为应具有访问权限,请与管理员联系。 如果你拥有全局管理员权限,请确保你位于 Azure AD B2C 目录(而不是 Microsoft Entra 目录)中。 可以查看有关创建 Azure AD B2C 租户的说明。

我可以在现有的基于员工的 Microsoft Entra 租户中使用 Azure AD B2C 功能吗?

Microsoft Entra ID 和 Azure AD B2C 是单独的产品/服务。 要使用 Azure AD B2C 功能,请创建一个独立于现有的基于员工的 Microsoft Entra 租户的 Azure AD B2C 租户。 一个 Microsoft Entra 租户代表一个组织。 Azure AD B2C 租户表示信赖方应用使用的标识集合。 通过在“Azure AD B2C > 标识提供者”下添加“新的 OpenID Connect 提供程序”,或者通过使用自定义策略,Azure AD B2C 可以与 Microsoft Entra ID 联合,以便对组织中的员工进行身份验证。

什么是 Azure AD B2C 中的本地帐户? 它们与 Microsoft Entra ID 中的工作或学校帐户有何不同?

在 Microsoft Entra 租户中,属于该租户的用户使用 <xyz>@<tenant domain> 形式的电子邮件地址登录。 <tenant domain> 是租户中已验证域之一或初始的 <...>.partner.onmschina.cn 域。 此类型的帐户是工作或学校帐户。

在 Azure AD B2C 租户中,大多数应用都希望用户使用任意电子邮件地址(例如 joe@comcast.net、bob@gmail.com、sarah@contoso.com 或 jim@live.com)登录。 此类型的帐户是本地帐户。 我们还支持任意用户名作为本地帐户(例如,joe、bob、sarah 或 jim)。 在 Azure 门户中配置 Azure AD B2C 的标识提供者时,可以选择这两种本地帐户类型中的一种。 在 Azure AD B2C 租户中,依次选择“标识提供者”、“本地帐户”和“用户名”。

可以通过注册用户流、注册或登录用户流、Microsoft Graph API 或 Azure 门户来创建应用程序的用户帐户。

一个 Azure AD B2C 租户可以容纳多少用户?

  • 默认情况下,每个租户总共可以容纳 125 万个对象(用户帐户和应用程序),但在添加和验证自定义域时,可以将此上限提高到 525 万个对象。 如果想要提高此上限,请联系 Microsoft 支持部门。 但是,如果在 2022 年 9 月之前创建了你的租户,此限制则不会影响你,并且你的租户将保留创建时分配给它的大小,即 5000 万个对象。

现在支持哪些社交标识提供者? 计划在未来支持哪些?

目前,我们支持多个社交标识提供者,包括 GitHub(预览版)、QQ(预览版)、WeChat(预览版)和 Weibo(预览版)。 我们会根据客户需求来评估是否增加对其他常见社交标识提供者的支持。

Azure AD B2C 还支持自定义策略。 自定义策略允许你为支持 OpenID Connect 或 SAML 的任何标识提供者创建自己的策略。 查看我们的自定义策略初学者包,开始使用自定义策略。

我在 Azure AD B2C 中使用 ADFS 作为标识提供程序。 在尝试从 Azure AD B2C 发起退出登录请求时,ADFS 显示错误 *MSIS7084:在使用 SAML HTTP 重定向或 HTTP POST 绑定时,必须对 SAML 注销请求和注销响应消息进行签名*。 如何解决此问题?

在 ADFS 服务器上,运行:Set-AdfsProperties -SignedSamlRequestsRequired $true。 这将强制 Azure AD B2C 对所有对 ADFS 的请求进行签名。

必须在 Azure 上运行应用程序才能将其与 Azure AD B2C 一起使用吗?

不,可以在任何位置(在云中或本地)托管应用程序。 只要能在公共可访问的端点上发送和接收 HTTP 请求,它就可以与 Azure AD B2C 进行交互。

我有多个 Azure AD B2C 租户。 如何在 Azure 门户上管理它们?

在 Azure 门户中打开 Azure AD B2C 服务之前,必须切换到要管理的目录。 选择顶部菜单中的“设置”图标,以便从“目录 + 订阅”菜单切换到要管理的目录。

为什么我无法创建 Azure AD B2C 租户?

你可能没有创建 Azure AD B2C 租户的权限。 只有具有全局管理员或租户创建者角色的用户才能创建租户。 你需要联系全局管理员。

如何自定义 Azure AD B2C 发送的验证电子邮件(内容和“发件人:”字段)?

可以使用公司品牌功能来自定义验证电子邮件的内容。 具体来说,可以自定义电子邮件的下列两个元素:

  • 横幅徽标:显示在右下角。

  • 背景色:显示在顶部。

    自定义验证电子邮件的屏幕截图

电子邮件签名包含首次创建 Azure AD B2C 租户时提供的 Azure AD B2C 租户名称。 可以使用以下说明更改名称:

  1. 以全局管理员身份登录到 Azure 门户
  2. 打开“Microsoft Entra ID”边栏选项卡。
  3. 选择“属性”选项卡。
  4. 更改“名称”字段。
  5. 在页面顶部选择“保存”。

目前不能更改电子邮件的“发件人:”字段。

提示

通过 Azure AD B2C 自定义策略,你可以自定义 Azure AD B2C 发送给用户的电子邮件,包括电子邮件的“发件人:”字段。 自定义电子邮件验证要求使用第三方电子邮件提供程序,如 Mailjet、SendGrid 或 SparkPost。

如何将我现有的用户名、密码和配置文件从数据库迁移到 Azure AD B2C?

可以使用 Microsoft Graph API 编写迁移工具。 有关详细信息,请参阅用户迁移指南

Azure AD B2C 中的本地帐户使用什么密码用户流?

本地帐户的 Azure AD B2C 密码用户流以 Microsoft Entra ID 的策略为基础。 Azure AD B2C 的注册、注册或登录和密码重置用户流使用“强”密码强度,并且不会让任何密码过期。 有关详细信息,请参阅 Microsoft Entra ID 中的密码策略和限制

我可以使用 Microsoft Entra Connect 将存储在本地 Active Directory 中的使用者标识迁移到 Azure AD B2C 吗?

否,Microsoft Entra Connect 并不适用于 Azure AD B2C。 请考虑使用 Microsoft Graph API 进行用户迁移。 有关详细信息,请参阅用户迁移指南

Azure AD B2C 是否可以与 Microsoft Dynamics 之类的 CRM 系统一起使用?

与 Microsoft Dynamics 365 门户的集成可用。 请参阅配置 Dynamics 365 门户以使用 Azure AD B2C 进行身份验证

Azure AD B2C 是否可以与 SharePoint 本地 2016 或更早版本一起使用?

Azure AD B2C 不适用于 SharePoint 外部合作伙伴共享方案,请转而参阅 Microsoft Entra B2B

我应该使用 Azure AD B2C 还是 B2B 来管理外部标识?

阅读比较外部标识解决方案,详细了解将适当功能应用于外部标识方案的相关信息。

Azure AD B2C 提供哪些报告和审核功能? 它们与 Microsoft Entra ID P1 或 P2 中的相同吗?

否,Azure AD B2C 不与 Microsoft Entra ID P1 或 P2 支持相同的报表集。 但是,有许多共性:

  • 登录报告提供每次登录的记录以及简短的详细信息。
  • 审核报告包括管理活动和应用程序活动。
  • 使用情况报告包括用户数、登录次数和 MFA 次数。

我可以本地化 Azure AD B2C 所提供页面的 UI 吗? 支持哪些语言?

可以,请参阅语言自定义。 我们提供 36 种语言的翻译版本,并且你可以根据需要替代任何字符串。

如何删除 Azure AD B2C 租户?

请按照以下步骤删除 Azure AD B2C 租户。

可以使用新的统一“应用注册”体验或遗留下来的“应用程序(旧版)”体验。 详细了解此新体验

  1. 以订阅管理员身份登录到 Azure 门户。 使用在注册 Azure 时使用的同一个工作或学校帐户,或同一个 Microsoft 帐户。
  2. 请确保使用的是包含 Azure AD B2C 租户的目录。 在门户工具栏中选择“设置”图标。
  3. 在“门户设置 | 目录+订阅”页上的“目录名称”列表中找到你的 Azure AD B2C 目录,然后选择“切换”。
  4. 在左侧菜单中,选择“Azure AD B2C”。 或者,选择“所有服务”并搜索并选择“Azure AD B2C”。
  5. 删除 Azure AD B2C 租户中的所有用户流(策略)
  6. 删除 Azure AD B2C 租户中的所有“标识提供者”。
  7. 选择“应用注册”,然后选择“所有应用程序”选项卡。
  8. 删除已注册的所有应用程序。
  9. 删除 b2c-extensions-app
  10. 在“管理”下,选择“用户” 。
  11. 依次选择每个用户(排除当前以订阅管理员身份登录的用户)。 选择页面底部的“删除”,并在出现提示时选择“是”。
  12. 在左侧菜单中选择 Microsoft Entra ID
  13. 在“管理”下,选择“属性”
  14. 在“Azure 资源的访问管理”下,选择“是”,然后选择“保存”。
  15. 从 Azure 门户注销,然后重新登录以刷新你的访问权限。
  16. 在左侧菜单中选择 Microsoft Entra ID
  17. 在“概述”页上,选择“删除租户” 。 按照屏幕上的说明完成该过程。

我可以将 Azure AD B2C 作为企业移动性套件的一部分吗?

不,Azure AD B2C 是即用即付 Azure 服务,不是企业移动套件的一部分。

我是否可以为我的 Azure AD B2C 租户购买 Microsoft Entra ID P1 和 Microsoft Entra ID P2 许可?

否,Azure AD B2C 租户不使用 Microsoft Entra ID P1 或 Microsoft Entra ID P2 许可。 Azure AD B2C 使用 Azure AD B2C Premium P1 或 P2 许可证,它们不同于标准 Microsoft Entra 租户的 Microsoft Entra ID P1 或 P2 许可证。 Azure AD B2C 租户本机支持一些与 Microsoft Entra ID P1 或 P2 功能类似的功能,如支持的 Microsoft Entra ID 功能中所述。

我是否可以在我的 Azure AD B2C 租户中对 Microsoft Entra Enterprise Applications 使用基于组的分配?

我正在为我的应用程序使用滚动刷新令牌,在设定的有效期内兑换新获得的刷新令牌时,我收到了 invalid_grant 错误。 为何发生这种情况?

在确定滚动刷新令牌的有效性时,B2C 还会考虑用户在应用程序中的初始登录时间,以计算令牌有效性偏离。 如果用户在很长一段时间内没有注销应用程序,则此偏离值将超过令牌的有效期,因此出于安全原因,令牌将被视为无效。 因此,出现了此错误。 通知用户执行正确的注销并重新登录应用程序,这应该会重置偏离。 如果刷新令牌滚动设置为无限滚动,则此场景不适用。

我已使用 Microsoft Graph invalidateAllRefreshTokens 或 Microsoft Graph PowerShell Revoke-MgUserSignInSession 撤销刷新令牌。 为什么 Azure AD B2C 仍接受旧刷新令牌?

在 Azure AD B2C 中,如果 refreshTokensValidFromDateTimerefreshTokenIssuedTime 之间的时间差小于或等于 5 分钟,则刷新令牌仍被视为有效。 但是,如果 refreshTokenIssuedTime 大于 refreshTokensValidFromDateTime,则会撤消刷新令牌。 按照以下步骤检查刷新令牌是否有效或已吊销:

  1. 通过兑换 authorization_code 检索 RefreshTokenAccessToken

  2. 等待 7 分钟。

  3. 使用 Microsoft Graph PowerShell cmdlet Revoke-MgUserSignInSession 或 Microsoft Graph API invalidateAllRefreshTokens 运行 RevokeAllRefreshToken 命令。

  4. 等待 10 分钟。

  5. 再次检索 RefreshToken

提示

使用 Azure AD B2C 自定义策略,你可以通过调整声明转换 Id“AssertRefreshTokenIssuedLaterThanValidFromDate”下的 InputParameter“TreatAsEqualIfWithinMillseconds”的值来减少上面提到的 5 分钟(300000 毫秒)的偏离时间。 可以在最新自定义策略 stater-pack 下的 TrustFrameworkBase.xml 文件中找到此声明转换。

我在 Web 浏览器中使用多个选项卡登录到我在同一 Azure AD B2C 租户中注册的多个应用程序。 在尝试执行单一退出登录时,并未注销全部应用程序。为何发生这种情况?

目前,Azure AD B2C 不支持针对此特定方案进行单一退出登录。 这是由 Cookie 争用引起的,因为所有应用程序同时在同一 Cookie 上运行。