如何将 access-control-allow-origin header 从 Web 应用转发到 Front Door?

How to forward access-control-allow-origin header from a Web App to a Front Door?

我目前在容器中有一个 Web 应用程序 运行,并正确配置了 access-control-allow-origin header。但是,当我检查此 Web 应用程序前面的前门时,相同的 header 具有选项“*”——接受所有类型的请求,与配置的请求不同。

如何获取传播此 Web 应用程序的前门 header?

官方文档如下:Azure Front Door Rule Set

On Azure Front Door, you can create a rule in the Azure Front Door Rules Set to check the Origin header on the request. If it's a valid origin, your rule will set the Access-Control-Allow-Origin header with the correct value. In this case, the Access-Control-Allow-Origin header from the file's origin server is ignored and the AFD's rules engine completely manages the allowed CORS origins.

Doris lv之前的回答是正确的,但我也想指出几点:

  • 注意不要在 URL 末尾添加斜杠 (/) -- 我已经添加了,这就是为什么不起作用:

  • 创建规则后,转到 Front Door designer (FDD) 和 link 这个新规则以及一些可用的路由规则

  • 同样在 FDD 中,单击 Purge 按钮清除以前的缓存并加载新配置

另一件重要的事情是,由于 HDCL AppScanAccess-Control-Allow-Origin header 过于宽松,我不得不进行此配置;也就是说,扫描指出 Java 脚本文件有这个问题,但它们没有,只有 CSS 和 TFF 文件有这个 header。仔细查看扫描报告指出发生的事情是 Vary header 的值是 Origin,使扫描报告成为 Cross-Origin 资源共享 (CORS) 问题。要解决这个问题,只需在规则引擎配置中添加一个新规则,删除这个 header 就像所示:

在此之后,扫描没有再报告任何问题