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

Blazor WASM中Entra ID认证后code处理的404问题排查

问题排查与解决建议

可能原因及对应解决步骤

1. Azure静态Web应用缺少SPA fallback路由配置

Blazor WASM是单页应用,所有路由请求都需要指向index.html,否则非根路径的回调URL会返回404。

  • 在项目根目录创建staticwebapp.config.json文件,添加以下配置:
{
  "routes": [
    {
      "route": "/*",
      "serve": "/index.html",
      "statusCode": 200
    }
  ]
}
  • 确保该文件被包含在部署包中,重新部署到Azure静态Web应用。

2. 代码中MSAL配置与Entra ID应用注册不匹配

  • 检查appsettings.json中的AzureAd配置:
    • RedirectUri必须和Entra ID应用注册里的回调URL完全一致(包括https、域名、路径,无多余斜杠)
    • Authority格式应为https://login.microsoftonline.com/{你的租户ID}/v2.0,确认租户ID正确且使用v2.0端点
  • 验证Program.cs中的MSAL初始化代码,确保绑定了正确的配置:
builder.Services.AddMsalAuthentication(options =>
{
    builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
    // 按需添加所需的访问令牌范围
    options.ProviderOptions.DefaultAccessTokenScopes.Add("https://graph.microsoft.com/User.Read");
});

3. Entra ID应用注册平台类型错误

  • 登录Entra ID管理中心,进入应用注册的"平台配置"页面:
    • 确认添加的是SPA平台,而非Web或其他类型
    • 删除其他无关的平台配置,避免流程冲突

4. 浏览器缓存或会话干扰

  • 使用浏览器隐私窗口重新测试认证流程,排除旧的AD B2C缓存或会话数据影响
  • 若问题依旧,清除浏览器的所有缓存和Cookie后重试

5. MSAL包版本或.NET 10兼容性问题

  • 确认Microsoft.Authentication.WebAssembly.Msal包版本为10.0.2,且项目中所有相关的Microsoft身份认证包版本一致
  • 尝试清理项目的NuGet缓存,重新安装依赖后部署

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 17:42:06