如何将 access-control-allow-origin 标头从 Web 应用程序转发到前门?

问题描述

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

如何让前门传播此 Web 应用标题

解决方法

这是关于此的官方文档:Azure Front Door Rule Set

在 Azure Front Door 上,您可以在 Azure Front Door 中创建规则 规则设置以检查请求的 Origin 标头。如果它是有效的 源,您的规则将设置 Access-Control-Allow-Origin 标头 正确的值。在这种情况下,Access-Control-Allow-Origin 来自文件源服务器的标头被忽略,并且 AFD 的规则 引擎完全管理允许的 CORS 来源。 enter image description here

,

Doris lv 之前的回答是正确的,但我还想指出一些事情:

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

enter image description here

  • 创建规则后,转到前门设计器 (FDD) 并将此新规则与一些可用的路由规则相关联

enter image description here

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

enter image description here

另一件重要的事情是我不得不做这个配置,因为 HDCL AppScanAccess-Control-Allow-Origin 标头过于宽松;话虽如此,扫描指出 Java Scripts 文件有这个问题,而他们没有,只有 CSS 和 TFF 文件有这个标题。仔细查看扫描报告指出,发生的事情是 Vary 标头中包含值 Origin,使扫描报告成为跨源资源共享(CORS) 问题。要解决此问题,只需在规则引擎配置中添加一条新规则,删除此标头,如图所示:

enter image description here

此后,扫描不再报告任何问题