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

Azure静态Web应用仅允许Entra B2C认证用户访问配置异常

问题排查与修复方案

1. 修正登录跳转端点(核心问题)

你的responseOverrides中配置的跳转路径是/.auth/login/aad,但你定义的自定义OpenID Connect提供者名称是aadb2c,二者不匹配,导致未认证时无法正确触发B2C登录流程。需要将跳转路径改为对应自定义提供者的端点:

"responseOverrides": {
  "401": {
    "statusCode": 302,
    "redirect": "/.auth/login/aadb2c"
  }
}

2. 验证B2C应用注册的回复URL

确保你在Entra B2C中注册的应用程序已添加以下回复URL(替换为你的静态Web应用域名):

https://<你的静态Web应用域名>/.auth/login/aadb2c/callback

如果缺少这个URL,登录流程会失败,导致认证状态无法正确同步。

3. 优化路由规则(可选)

你的routes规则"route": "/*"已覆盖所有路径,但可以明确排除无需认证的静态资源,避免图片、CSS等资源触发认证检查:

"routes": [
  {
    "route": "/images/*",
    "allowedRoles": ["anonymous"]
  },
  {
    "route": "/css/*",
    "allowedRoles": ["anonymous"]
  },
  {
    "route": "/*",
    "allowedRoles": ["authenticated"]
  }
]

4. 调整内容安全策略(可选)

当前CSP的script-src仅允许userscripts.example.com,但B2C登录页面和认证脚本需要从B2C域名加载,需补充对应域名到CSP规则:

"globalHeaders": {
  "Content-Security-Policy": "default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com https://mytenantb2c.b2clogin.com; connect-src 'self' https://mytenantb2c.b2clogin.com",
  "X-Content-Type-Options": "nosniff",
  "X-Frame-Options": "DENY"
}

5. 重新部署配置

修改staticwebapp.config.json后,重新部署静态Web应用,确保新配置生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 15:40:08