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

Blazor服务端应用部署Azure App Service后Azure B2C认证重定向到localhost问题

Azure B2C 认证 Blazor 服务端应用部署后重定向异常问题解决方案

1 重定向到 localhost 问题修复

  • 首先更新 Azure AD B2C 应用注册的重定向 URI:新增你的 Azure App Service 公网域名拼接 /signin-oidc 的地址(例如 https://<你的应用名>.azurewebsites.net/signin-oidc),平台类型选择 Web,删除不必要的 localhost 测试重定向地址避免优先级冲突。
  • 禁止在代码中硬编码重定向地址:不要在 OIDC 配置中写死 RedirectUri 为 localhost 值,统一从配置文件/App Service 应用参数中读取该配置。
  • 配置反向代理转发头:Blazor 服务端运行在 App Service 反向代理后,默认无法识别公网域名和 HTTPS 协议,需要做两处配置:
    在 Program.cs 中添加转发头配置,注意要放在 app.UseAuthentication() 之前生效:
    builder.Services.Configure<ForwardedHeadersOptions>(options =>
    {
        options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
        options.KnownNetworks.Clear();
        options.KnownProxies.Clear();
    });
    
    // 放在中间件管道最前端,至少在身份认证中间件之前
    app.UseForwardedHeaders();
    
    在 Azure App Service 的「配置」-「应用程序设置」中新增参数 ASPNETCORE_FORWARDEDHEADERS_ENABLED,值设为 true,保存后会自动重启应用。

2 「无法对 Azure AD B2C 进行身份验证」警告修复

该警告本质是认证配置错误,使用了普通 Azure AD 的认证逻辑而非 B2C 专属逻辑:

  • 确认依赖包正确:项目引用的是 Microsoft.Identity.Web.UI NuGet 包,不要使用旧版的 Microsoft.AspNetCore.Authentication.AzureAD.UI 包,后者仅支持普通 Azure AD 不支持 B2C。
  • 确认配置结构正确:appsettings.json 中的认证配置需包含 B2C 专属的实例、域、用户流参数,示例如下:
    "AzureAdB2C": {
      "Instance": "https://mycompanyb2c.b2clogin.com/",
      "ClientId": "你的B2C应用客户端ID",
      "Domain": "mycompanyb2c.onmicrosoft.com",
      "SignUpSignInPolicyId": "b2c_1_myapp_signin",
      "CallbackPath": "/signin-oidc"
    }
    
  • 确认认证注入逻辑正确:Program.cs 中使用 B2C 专属的注入方法,不要使用普通 AAD 的注入逻辑:
    builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAdB2C"));
    
  • 排查应用注册属性:确认该应用注册的「颁发者URL」配置为带用户流的 B2C 地址,而非普通 Azure AD 的地址。

3 生效验证

所有配置修改完成后,重启 Azure App Service,清空浏览器缓存后重新访问应用即可正常跳转至 B2C 登录页,登录后回调到 App Service 公网地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 09:57:03