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

rkl*_*3ss 5 iis ntlm windows-authentication 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>
Run Code Online (Sandbox Code Playgroud)

但这是行不通的:当我在应用程序上读取它时,标题总是空的。我也尝试过,但是这些都不起作用。

那么,我在做什么错呢?我应该使用另一个服务器变量吗?我想念什么吗?

一般而言:可以做我想做的事吗?

再次感谢您的帮助,如果我提出的要求很明显,但是我对使用IIS还是陌生的,并且找不到任何有用的信息,请原谅我。

Tod*_*.Lu 3

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, ... 
Run Code Online (Sandbox Code Playgroud)

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

  • 令人恼火的是,这不起作用 - IIS 的主要好处是它可以非常轻松地处理某些身份验证类型,并且您不能只是将其弹出到安全服务器前面并让它将经过身份验证的用户名放入 http 标头中并转发请求上。 (4认同)