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

时间:2014-06-04 08:00:35

标签: iis windows-authentication ntlm url-rewrite-module arr

提前感谢您的帮助。

在我的环境中,我将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,我找不到任何有帮助的东西。

1 个答案:

答案 0 :(得分:2)

http://weblogs.asp.net/owscott/an-intro-to-iis-url-rewrite-plus-redirecting-urls-to-www-web-pro-week-8-of-52

{REMOTE_USER}, {LOGON_USER} & {AUTH_USER} do not work with URL-REWRITE, ... 

您可以使用稍后在堆栈中运行的www.isapirewrite.com并具有auth数据的句柄。