联合身份验证后,重定向到最初请求的url

问题描述 投票:0回答:2

我们使用 ThinkTecture 服务器设置了联合安全性。

当用户希望访问特定 URL 时,他们会被重定向到身份提供商服务器 (IDP),然后登录并获得身份验证。

然后,IDP 服务器会将用户重定向回该依赖方配置中指定的“重定向 URL”。

相反,我希望将其重定向到最初请求的 URL。

这可能吗?我已经阅读了一些有关 wreply 参数的内容,但不确定如何使用它并在重定向之前拦截原始 Web 服务器上的身份验证级别调用。

更新 我意识到我的问题是由于我的网址包含哈希值,例如http://domain.com/#customer/123,哈希值传递到 WIF 内的重定向 URL 后什么也没有。请参阅下面我的回答以了解更多详细信息。

adfs federated-identity thinktecture-ident-server
2个回答
3
投票

您的应用程序需要记住 wctx 参数中的上下文信息。如果您在 RP 中使用 WIF,那么这应该会自动完成。


3
投票

我明白发生了什么事。我正在使用 WIF,正如布罗克的回答所建议的那样,它应该自己做所有事情......而且确实如此。

通常,如果您请求的网址如下:http://example.com/page,并且 ThinkTecture 中的“重定向至”/ReplyTo 设置只是 http://example.com/

然后,当 WIF 调用 STS 时,它会获取所请求域的路径(在本例中为 /path)并将其添加到 &wctx 参数内的 &ru 参数。 &wctx 参数将如下所示: rm=0&id=passive&ru=%2fpage.

然后,在 STS 进行身份验证后,它会将用户重定向回 ReplyTo url,http://example.com,主体参数为 wctx,WIF 会选取此内容并使用 ru 参数执行此操作另一个重定向。

问题是我请求的网址是http://example.com/#page并且WIF在ru参数中不包含#page。所以我的 ru 参数只是 /,所以它不断重定向到 http://example.com,这是正确的(但不正确)。

我想我需要用完整的 URL 自己设置 ru 值...除非有更好的方法。

© www.soinside.com 2019 - 2024. All rights reserved.