我试图在IIS上使用ARR和URL重写模块实现反向代理 . 我有两个名为A和B的服务器 . 我在服务器“A”上安装了ADFS,而服务器“B”仅用于反向代理 . 我在服务器“B”上安装了ARR和URL-Rewrite模块 .
例如,服务器"A"域名"myadfs1.com"和服务器"B"域名"myproxy.com" . 联合服务器登录页面URL - https://myadfs1.com/adfs/ls/IdpInitiatedSignon.aspx
Problem statement -
当我访问直接ADFS URL,即https://myadfs1.com/adfs/ls/IdpInitiatedSignon.aspx时,获得响应和ADFS登录页面打开正常 . 没有问题 . 但是当我试图通过代理访问ADFS登录页面时,即https://myproxy.com/adfs/ls/IdpInitiatedSignon.aspx得到503错误,即服务不可用 .
我正在使用以下规则进行重写 -
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<outboundRules>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
<rules>
<clear />
<rule name="ReverseProxyInboundRule2" stopProcessing="true">
<match url="[a][d][f][s](.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="On" />
</conditions>
<action type="Rewrite" url="https://myadfs1.com/adfs{R:1}" appendQueryString="true" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="ASP" verbosity="Verbose" />
<add provider="ISAPI Extension" verbosity="Verbose" />
<add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket" verbosity="Verbose" />
</traceAreas>
<failureDefinitions timeTaken="00:00:00" statusCodes="400-600" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
<system.web>
<identity impersonate="false" />
</system.web>
</configuration>
Some observation –
如果我尝试访问https://myproxy.com/adfs/ls/IdpInitiatedSignon.aspx URL,那么我在代理服务器上的IIS上没有任何日志 . 但是,如果我尝试将相同的URL替换为"adfs"到"adfs1",那么IIS会记录请求并收到404错误 .
所以我正在寻找帮助为我的ADFS访问配置反向代理 .
1 回答
我自己偶然发现了这一点,事实证明,当我在过去安装ADFS并稍后删除它时,我的IIS服务器上没有删除某些内容 .
Windows中的http.sys组件具有一个名为“URL预留”的功能,它允许多个应用程序在同一主机名上工作而不会相互干扰 . 这使IIS,ADFS,远程桌面网关等可以在同一台服务器上运行 .
我在我的服务器上运行以下命令:
这列出了我所有的URL保留,其中有几个用于ADFS - 尽管它不再安装在那台特定的机器上!然后我发出了这些命令:
一旦完成这一切,一切都开始奏效 .