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

Blazor WebAssembly独立应用部署Azure静态Web应用后认证失败

解决Azure静态Web应用中Blazor WASM AAD B2C认证404问题

问题根源

Blazor WebAssembly属于单页应用(SPA),所有路由逻辑由前端处理,但Azure静态Web应用默认仅会响应存在对应静态文件的路径请求。当AAD B2C认证完成后跳转至/login-callback时,由于该路径没有对应的静态文件,就会触发404错误。

必须配置的项

1. 添加SPA路由回退配置文件

在项目根目录创建staticwebapp.config.json文件,写入以下规则,让所有非静态资源的请求都转发到index.html:

{
  "routes": [
    {
      "route": "/*",
      "serve": "/index.html",
      "statusCode": 200
    }
  ],
  "navigationFallback": {
    "rewrite": "/index.html",
    "exclude": ["/images/*.{png,jpg,gif}", "/css/*", "/js/*"]
  }
}

这个配置会让Azure静态Web应用将包括/login-callback在内的所有前端路由请求,都交给Blazor应用处理,确保认证回调逻辑能正常执行。

2. 核对AAD B2C应用注册的URI配置

确认AAD B2C中你的应用注册里,重定向URI和注销URI已添加部署后的静态Web应用域名地址:

  • 重定向URI:https://<你的静态Web应用域名>/authentication/login-callback
  • 注销URI:https://<你的静态Web应用域名>/authentication/logout-callback
    注意保留本地测试用的URI(如https://localhost:5001/...),同时新增生产环境的地址,两者都需要配置。

3. 检查Azure静态Web应用的身份验证设置

进入Azure门户的静态Web应用资源,在身份验证菜单中:

  • 确认已正确关联你的AAD B2C租户和对应的用户流
  • 验证回调路径设置为/authentication/login-callback,需与Blazor应用中认证组件的配置完全一致

4. 清理浏览器缓存

部署后浏览器可能缓存了旧的路由规则或配置,按Ctrl+Shift+R强制刷新页面后,再测试登录流程。

额外检查项

  • 确认appsettings.json中的B2C配置参数(Authority、ClientId、RedirectUri等)已更新为生产环境的值,而非本地测试地址
  • 若使用自定义域名,需确保域名已正确绑定到静态Web应用,且SSL证书状态正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:29:59