gpt4 book ai didi

iis - IIS 后面的 HTTP 服务器 : pass authentication headers

转载 作者:行者123 更新时间:2023-12-02 12:41:25 29 4
gpt4 key购买 nike

我有一个配置了 Windows 身份验证和 URL 重写的 IIS 实例,因此它基本上充当反向代理。我的后端服务器(在 Linux 上运行)需要一个 REMOTE_USER header 。是否可以配置 IIS 将有关经过身份验证的用户的信息传递到后端服务器?

最佳答案

如果 IIS 配置为 Windows Auth,则 ARR 将提出质询,并且仅在用户通过身份验证后转发请求。

可以使用重写规则中的 HTTP 命名约定和 serverVariables 元素随请求转发自定义 header 。例如,在以下示例中,服务器变量 LOCAL_ADDR 作为名为 X-MY-HEADER 的 header 转发。

<rule name="Reverse Proxy to MySite" stopProcessing="true">
<match url="^MySite/(.*)" />
<serverVariables>
<set name="HTTP_X_MY_HEADER" value="{LOCAL_ADDR}" />
</serverVariables>
<action type="Rewrite" url="http://www.myothersite.com/{R:1}" />
</rule>

遗憾的是,无法使用此技术转发 REMOTE_USER header 。这是因为当存在 Authorization header 时,请求会在身份验证模块运行之前转发,因此不会设置身份验证服务器变量(当映射到 header 时,它们只是空白)。

但是,您可以将 IIS 设置为使用Basic Windows Auth,然后从 Linux 服务器上的 Base64 编码的 Authorization header 中提取用户名.

关于iis - IIS 后面的 HTTP 服务器 : pass authentication headers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364736/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com