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

.NET 6集成Azure AD B2C报错:必须提供TenantId选项

Azure AD B2C 配置错误解决指南

遇到的问题

  1. 初始错误:The 'TenantId' option must be provided.
  2. 添加TenantId后出现新错误:无法从OpenID配置端点获取有效配置(对应截图提示)

配置文件与代码现状

appsettings.json 配置

"AzureAdB2C": {
    "Instance": "<instance>",
    "Domain": "<domain>",
    //  "TenantId": "<tenantId",
    "ClientId": "<clientId>",
    "CallbackPath": "/signin-oidc",
    "SignInPolicyId": "<signInPolicyId>",
    "SignedOutCallbackPath": "/signout/<signInPolicyId>"
}

Program.cs 代码

builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme).
    AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAdB2C"));

builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages().AddMicrosoftIdentityUI();

错误原因与修复步骤

1. 解决「必须提供TenantId」错误

  • 取消TenantId的注释,同时修正语法错误:原注释里的<tenantId"缺少闭合引号,改为<your-tenant-directory-id>"
  • TenantId需使用Azure AD B2C租户的目录ID,可在Azure门户的B2C租户「概述」页面获取

2. 解决添加TenantId后的配置端点错误

从截图提示来看,核心问题是配置拼接的OpenID元数据URL无效,需修正以下配置项:

  • Instance:末尾必须添加斜杠/,格式应为https://<你的租户名>.b2clogin.com/
  • TenantId:必须是租户的目录ID(不是租户名称)
  • SignInPolicyId:需与Azure门户中创建的用户流/自定义策略名称完全一致(例如B2C_1_signup_signin)

修正后的完整配置示例

"AzureAdB2C": {
    "Instance": "https://contoso.b2clogin.com/",
    "Domain": "contoso.onmicrosoft.com",
    "TenantId": "12345678-1234-1234-1234-1234567890ab",
    "ClientId": "98765432-4321-4321-4321-ba0987654321",
    "CallbackPath": "/signin-oidc",
    "SignInPolicyId": "B2C_1_signup_signin",
    "SignedOutCallbackPath": "/signout/B2C_1_signup_signin"
}

3. 额外验证项

  • 确认Azure门户中应用注册的「重定向URI」与配置里的CallbackPath完全匹配(例如https://localhost:5001/signin-oidc)
  • 确保应用注册已关联对应的用户流/策略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:32:43