导致ADFS登录失败的wfresh参数

时间:2013-09-17 16:09:51

标签: adfs2.0 adfs ws-federation

我使用ADFS与许多不同的RP进行联合登录,包括我们自己的自定义Web应用程序,Office 365和其他一些第三方服务。我遇到了一个问题,当URL中指定wfresh=0时,登录会无声地失败。它只是一遍又一遍地要求我的密码。当我单击“登录”按钮时,它不会让您登录并将您重定向回RP,也不会失败并给您一条错误消息。相反,它会将您重定向回STS登录页面,因此它会向用户显示它正在默默地失败。

我发现了这个问题:wfresh not working with WS-Federation via ADFS,这似乎是在正确的轨道上。但是,虽然我肯定会看到集成登录的问题,但我也遇到了与表单登录类似的问题。外部症状不同,但行为似乎相同:如果您指定wfresh=0,它会直接将您发送到/ adfs / ls。

有没有办法配置ADFS来正确处理wfresh,或者至少忽略它?

更新:交叉发布到MSDN日内瓦论坛:http://social.msdn.microsoft.com/Forums/vstudio/en-US/7acbbd11-cd69-466b-8faa-f129f24fe1fe/wfresh-parameter-causing-adfs-login-to-fail

3 个答案:

答案 0 :(得分:2)

更新:微软今天发布了他们的修补程序:http://support.microsoft.com/kb/2896713。它不是公共修补程序,因此您需要与Microsoft支持部门联系以获取更新。

上一篇:我与微软全球升级服务中的升级工程师进行了交谈。 EE表示他们知道这个问题,跟踪受影响的客户,并致力于解决方案。遇到此相同问题的任何人都应联系Microsoft支持人员并打开支持案例,以便在解决方案可用时通知他们。 Microsoft支持人员正在解决方案ID号2879919内部跟踪此问题。

答案 1 :(得分:1)

我最近看到了同样的事情。我们与某些RP连接并且还使用Office 365.如果我将我的机器登录到portal.microsoftonline.com,它最终将显示“页面无法显示”,其中URL显示长字符串,“wfresh = 0”结尾

在外部,如果我让我的浏览器登录到门户网站,它会将我带回到表单但从不接受我的新凭据。如果我将“wfresh = 0”的值更改为“1”,它允许我返回外部和内部。我正在尝试查看事件日志以查看任何内容,但没有找到任何线索。还在寻找。

答案 2 :(得分:1)

在点击IIS时,使用MS IIS URL重写来替换或删除URL中的wfresh = 0会是一个好的还是坏的解决方案(如果可能的话)?

当然,最好是ADFS的默认安装首先使用wfresh = 0: - )

IIS网址重写1


更新

我的问题是只有内部客户端遇到错误,而外部客户端(使用ADFS代理服务器)却没有。

在内部ADFS 2.1服务器上重写URL并且/adfs/ls/web.config中的以下URL重写规则有效:

    <rule name="wfresh0to1" enabled="true" stopProcessing="true">
     <match url="(.*)" />
      <conditions>
       <add input="{QUERY_STRING}" pattern="(.*)wfresh=0(.*)" />
      </conditions>
      <action type="Rewrite" url="{R:0}?{C:1}wfresh=1{C:2}" appendQueryString="false" />
    </rule>