反向代理背后的 ADFS 依赖方,WIF 显示错误 ID3206

ADFS relying party behind reverse proxy, WIF shows error ID3206

我有 asp.net 应用程序(例如 myhost.org/prod/app),它位于反向代理(例如 proxy.org/app)之后。配置了 ADFS 被动重定向到 ADFS,然后返回到反向代理。问题是 proxy.org 指向 myhost.org/prod 站点,开箱即用的 WIF 生成 wctx ru 参数,即“/prod/app/”。因此,如果您通过代理。org/app 它被重定向到 ADFS,然后返回到代理。org/app 然后 WIF 添加 ru 参数,我被重定向到代理。org/prod/app/.

如果我覆盖 WSFederationAuthenticationModule.RedirectToIdentityProvider 方法使 ru 参数为“/app/”,那么我会收到错误消息:

“/prod/app”应用程序中的服务器错误。 ID3206:SignInResponse 消息只能在当前 Web 应用程序内重定向:不允许“/app/”。

我有一个类似的应用程序,它没有使用反向代理,并且可以完美地工作。我的问题是如何强制 WIF 理解重定向发生在同一个应用程序中?或者任何其他让它发挥作用的建议。

问题是您的 return URL 需要与您的 WS-Federation 端点 URI 在同一范围内。

这是什么配置?

解决此问题的 "classic" 方法是确保末尾有一个尾随“/”,但您似乎有这个?

这是一个很老的问题,但如果我没记错的话,我们已经简化了到主机的反向代理重定向。不是从代理。org/app 到 myhost.org/prod/app,而是在根路径上进行重定向,因此 proxy.org 开始指向 myhost.org。这导致了应用程序级别的正确重定向。 后来我们发现为代理配置了多个环。org/app 这可能会导致这种不需要的行为。