.NET 6集成Azure AD B2C报错:必须提供TenantId选项
Azure AD B2C 配置错误解决指南
遇到的问题
- 初始错误:
The 'TenantId' option must be provided. - 添加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
相关产品推荐
相关产品推荐

