使用ARR和URL重写从IIS转发NTLM凭据

使用ARR和URL重写从IIS转发NTLM凭据,iis,windows-authentication,ntlm,url-rewrite-module,arr,Iis,Windows Authentication,Ntlm,Url Rewrite Module,Arr,提前感谢你的帮助 在我的环境中,我将IIS配置为充当反向代理,并将请求转发到另一台主机上的应用程序服务器的特定路径。为了做到这一点,我使用了应用程序请求路由(ARR)和URL重写模块,我创建了规则,一切正常 IIS负责使用NTLM对客户端进行身份验证,因此我的问题是:在对用户进行身份验证后,是否可以将身份验证凭据(至少是用户名)传递给我的应用程序服务器 我尝试这样做,在请求中添加自定义标题,编写如下规则: <rule name="ForwardToApplicationServer">

提前感谢你的帮助

在我的环境中,我将IIS配置为充当反向代理,并将请求转发到另一台主机上的应用程序服务器的特定路径。为了做到这一点,我使用了应用程序请求路由(ARR)和URL重写模块,我创建了规则,一切正常

IIS负责使用NTLM对客户端进行身份验证,因此我的问题是:在对用户进行身份验证后,是否可以将身份验证凭据(至少是用户名)传递给我的应用程序服务器

我尝试这样做,在请求中添加自定义标题,编写如下规则:

<rule name="ForwardToApplicationServer">
<match url=".*" />
<serverVariables>
<set name="HTTP_AUTH_USER" value="{AUTH_USER}" />
</serverVariables>
<action type="Rewrite" url="http://myappserver/myapp/{R:0}" logRewrittenUrl="true" />
</rule>

但它不起作用:当我在应用程序上阅读它时,我的标题总是空的。我也试过了,但都不管用

那么,我做错了什么?我应该使用另一个服务器变量吗?我错过什么了吗

更一般地说:有可能做我想做的事吗

再次感谢您的帮助,如果我问了一些明显的问题,但我对使用IIS还不熟悉,并且找不到任何对我有帮助的东西,请原谅。


您可以使用
www.isapirewrite.com
,它稍后在堆栈中运行,并具有对身份验证数据的句柄

让人恼火的是,这不起作用-IIS的主要优点是它可以非常轻松地处理某些身份验证类型,而且您不能将其弹出到安全服务器前,让它将经过身份验证的用户名放入http头中,然后在http头上转发请求。
{REMOTE_USER}, {LOGON_USER} & {AUTH_USER} do not work with URL-REWRITE, ...