Azure Front Door路由标准层Static Web App返回403,免费层正常
问题分析与解决方案
1. 免费层SWA正常、标准层返回403的原因
Azure静态Web应用标准层默认启用了「限制原始访问」功能,该设置会阻止直接访问默认的.azurestaticapps.net端点,仅允许通过已绑定的自定义域名接收请求。而免费层无此默认限制,允许直接通过默认域名访问,因此Front Door指向免费层SWA默认域名时可正常路由,指向标准层时会被拦截返回403。
2. 标准层SWA与Front Door配合的额外配置
针对标准层SWA,有两种可行配置方案:
- 方案一:添加Front Door访问权限
在标准层SWA的「网络」设置中,找到「限制原始访问」选项,将Azure Front Door的出站IP范围添加至允许列表。你可在Azure门户的Front Door资源详情中获取对应IP列表。 - 方案二:绑定自定义域名(推荐)
为标准层SWA绑定自定义域名,再将Front Door的源设置为该自定义域名。这种方式符合安全最佳实践,避免直接暴露默认端点。
你的staticwebapp.config.json配置已正确允许Front Door端点的跨域请求,无需调整,配置内容如下:
{ "routes": [ { "route": "/menu/*", "serve": "/menu/[id].html", "statusCode": 200 } ], "globalHeaders": { "Access-Control-Allow-Origin": "https://asorockendpoint-d6hjg2dre3b5h6h0.z01.azurefd.net" } }
3. 是否必须为SWA绑定自定义域名?
不是强制要求,但推荐绑定:
- 若不绑定,需手动配置SWA的网络允许列表,添加Front Door的IP范围才能让流量正常路由;
- 若绑定自定义域名,SWA会自动允许该域名的访问请求,无需额外配置IP列表,同时能提升安全性与品牌一致性。
内容的提问来源于stack exchange,提问作者Ayo Adesina
相关产品推荐
相关产品推荐

