You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Entra自定义注册用户流时如何解决AADB2C90011错误?

解决AADB2C90011 Client ID不匹配错误的方案

一、先排查基础配置问题(排除人为失误)

  • 确认用户流(Policy)关联的应用Client ID与代码中使用的完全一致:
    进入Entra管理中心,找到对应的用户流,查看「关联的应用程序」列表,确保当前使用的应用在列表内,且Client ID与代码里的ClientId参数完全匹配(注意大小写、连字符,避免复制错误)。
  • 检查租户类型:
    若使用B2C用户流,需确认应用注册在Entra ID B2C租户下,而非普通Entra ID租户(很多开发者会混淆两类租户)。
  • 重定向URI完全匹配:
    代码中指定的重定向URI必须与应用注册中添加的完全一致,包括协议(http/https)、端口号,VSTO插件场景下,避免依赖自动生成的URI,手动指定已注册的地址。

二、针对MSAL VB.NET的规避方案(假设为已知bug场景)

1. 显式指定租户ID与B2C授权端点

避免使用common通用端点,直接指定B2C租户ID与用户流授权地址,减少端点解析异常:

Dim pcaOptions As New PublicClientApplicationOptions()
pcaOptions.ClientId = "你的应用Client ID"
pcaOptions.TenantId = "你的B2C租户ID(如xxx.onmicrosoft.com)"
pcaOptions.RedirectUri = "已注册的重定向URI"

Dim pca = PublicClientApplicationBuilder.CreateWithApplicationOptions(pcaOptions)
    .WithB2CAuthority("https://你的租户名.b2clogin.com/tfp/你的租户名.onmicrosoft.com/你的用户流名称")
    .Build()

2. 强制手动指定重定向URI

不要依赖MSAL自动推断重定向URI,尤其是VSTO这类桌面插件场景,手动指定已在应用注册中配置的地址:

Dim pca = PublicClientApplicationBuilder.Create("你的Client ID")
    .WithB2CAuthority("https://你的租户名.b2clogin.com/tfp/你的租户名.onmicrosoft.com/B2C_1_signupsignin1")
    .WithRedirectUri("https://localhost:xxxx") ' 替换为你注册的自定义URI
    .Build()

3. 清理MSAL本地缓存

MSAL会缓存认证上下文,残留的旧Client ID或租户信息可能导致异常,清理缓存目录:
找到路径C:\Users\<你的用户名>\AppData\Local\.IdentityService,删除该目录下的相关文件后重新运行插件。

4. 升级MSAL至最新稳定版

若为已知未修复bug,升级Microsoft.Identity.Client NuGet包到最新稳定版,避免使用预览版本。

三、额外排查点

  • 确认应用注册的API权限:已添加B2C相关权限且完成管理员同意(若需管理员权限的API)。
  • 检查用户流状态:确保用户流处于「已启用」状态,未启用的用户流会导致认证异常。

内容的提问来源于stack exchange,提问作者Yogou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 15:07:16