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

部署Blazor客户端与服务端到Azure后,Azure B2C跳转localhost登录问题

Blazor Server + Azure B2C 部署后认证跳转异常问题解决

问题根源总结

  1. 部署到Azure Web App后仍跳转localhost:应用未正确读取生产环境站点URL,或未处理Azure反向代理的HTTPS请求,导致生成HTTP回调地址
  2. redirect_uri_mismatch错误:自动创建的两个应用注册(服务端/客户端)的重定向URL配置不匹配,或Azure B2C缓存未更新
  3. 修改配置后仍跳旧地址:Azure B2C应用注册配置存在缓存,需强制刷新

具体解决步骤

1. 修正生产环境认证配置

  • 检查生产环境的appsettings.json或Azure Web App的应用程序设置,确保AzureAdB2C节点的RedirectUri为生产环境的HTTPS地址:
    "AzureAdB2C": {
      "Instance": "https://<你的B2C租户名>.b2clogin.com/",
      "Domain": "<你的B2C域名>",
      "ClientId": "<服务端应用注册ID>",
      "ClientSecret": "<服务端应用密钥>",
      "SignUpSignInPolicyId": "<你的用户流ID>",
      "RedirectUri": "https://<你的Web App域名>/signin-oidc"
    }
    
  • 在Azure Web App的应用程序设置中添加ASPNETCORE_FORWARDEDHEADERS_ENABLED = true,确保应用识别Azure反向代理传递的HTTPS请求,避免生成HTTP回调地址。

2. 正确配置两个应用注册的重定向URL

Azure自动创建的两个应用注册分工明确,需分别配置对应环境的重定向URL:

  • 服务端应用注册:重定向URL设置为https://<你的Web App域名>/signin-oidc(本地测试可追加https://localhost:<端口>/signin-oidc)
  • 客户端应用注册:重定向URL设置为https://<你的Web App域名>/authentication/login-callback(本地测试可追加https://localhost:<端口>/authentication/login-callback)
  • 清理两个注册中多余的localhost条目,只保留当前环境需要的地址。

3. 清除Azure B2C与本地缓存

  • 强制刷新B2C配置缓存:进入Azure B2C门户的对应应用注册→认证页面,临时添加一个无效重定向URL(比如https://temp.com),保存后再删除并重新保存,等待5-10分钟让缓存生效。
  • 清除本地浏览器缓存:删除Cookie、本地存储和会话存储,避免残留旧认证会话导致跳转旧地址。
  • 重启Azure Web App:确保应用加载最新配置,而非启动时缓存的旧参数。

4. 排查配置加载问题

  • 确认发布时未将本地的launchsettings.json配置带入生产环境,生产环境应使用独立的appsettings.Production.json或Azure应用程序设置。
  • 开启Azure Web App的诊断日志,查看应用启动时的认证配置加载日志,验证RedirectUri是否正确读取了生产地址。

内容的提问来源于stack exchange,提问作者iCollect.it Ltd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:12:38