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

.NET Core中Azure B2C JWT验证报错IDX10205的问题咨询

解决Azure B2C JWT令牌验证的IDX10205错误

我来帮你搞定这个Azure B2C JWT验证的问题——这个IDX10205错误核心就是颁发者(Issuer)不匹配,咱们一步步来排查解决:

第一步:开启PII显示,拿到真实的Issuer信息

默认情况下,IdentityModel会隐藏敏感的PII(个人身份信息),所以你看不到日志里到底是哪个Issuer和配置的验证值不匹配。先把这个开关打开,才能找到问题根源:

在你的应用启动代码(Program.cs或者Startup.cs)里添加这行配置:

// 放在配置服务的代码段最前面,比如builder.Services初始化之前
IdentityModelEventSource.ShowPII = true;

重启应用后再触发验证操作,此时日志里就会显示真实的Issuer值和validationParameters.ValidIssuer/ValidIssuers的具体内容,你就能一眼看出哪里不匹配了。

第二步:修正ValidIssuer/ValidIssuers的配置

Azure B2C的JWT令牌颁发者格式是固定的,正确格式为:

https://<你的B2C租户名>.b2clogin.com/<你的租户目录ID>/v2.0/

配置验证参数时要注意这几个容易踩坑的点:

  • 别漏掉末尾的斜杠/,很多人就是因为少了这个导致匹配失败
  • 租户名要用xxx.b2clogin.com格式,而不是xxx.onmicrosoft.com
  • 目录ID是租户的GUID(可以在Azure门户的B2C租户设置里找到),不是域名

如果你的应用支持多个登录策略或者多个租户,建议用ValidIssuers集合来包含所有合法的颁发者,而不是单一的ValidIssuer,这样更灵活。

更可靠的方案:用自动发现配置避免手动出错

手动硬编码Issuer很容易写错,推荐使用OpenID Connect的元数据端点让中间件自动获取正确的Issuer和签名密钥。配置示例如下:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        // 替换成你的B2C租户、策略名称
        options.Authority = "https://<你的租户名>.b2clogin.com/tfp/<你的租户名>.onmicrosoft.com/<你的登录策略名称>/v2.0/";
        // 替换成你的应用客户端ID
        options.Audience = "<你的应用Client ID>";
        
        // 可选:如果需要在验证失败时临时开启PII
        options.Events = new JwtBearerEvents
        {
            OnAuthenticationFailed = context =>
            {
                IdentityModelEventSource.ShowPII = true;
                return Task.CompletedTask;
            }
        };
    });

这样中间件会自动从B2C的元数据地址获取正确的Issuer,不用手动配置,大大降低出错概率。

按照这个流程先定位具体的不匹配值,再修正配置,应该就能解决这个IDX10205错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:08:18