如何将 returnURL 添加到 SAML 请求?

发布于 2024-12-10 14:34:51 字数 326 浏览 0 评论 0原文

问题:SP 站点 xyz.com/A 收到对需要身份验证的资源 xyz.com/B 的请求。带有relay_state=xyz.com/B 的SAML 请求被发送到iDP。用户通过 SAML/SSO 重定向到 iDP 站点,然后重定向到 idp.com。

我想实现一个链接,允许用户取消对 xyz.com/B 的请求,然后简单地将他返回到他在 xyz.com/A 上浏览的位置。由于存在 SAML 重定向,因此我无法使用 idp.com 上的引用标头来找出用户来自哪里。理想情况下,我想在 SAML 请求中发送 returnURL=xyz.com/A。

那么问题来了,有这样的方法吗?

谢谢

Problem: an SP site xyz.com/A gets a request for a resource xyz.com/B requiring authentication. A SAML request with relay_state=xyz.com/B gets sent to the iDP. The user gets redirected to the iDP site through SAML/SSO then onto idp.com.

I want to implement a link that allows the user to cancel his request for xyz.com/B and simply return him back to where he was browsing at xyz.com/A. Because there was a SAML redirect, I can't use the referer header at idp.com to find out where the user came from. Ideally I want to send the returnURL=xyz.com/A inside my SAML request.

So the question is is there such a way?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

嗼ふ静 2024-12-17 14:34:51

我不知道可以通过标准 SAML 方式实现此目的。您可能需要依赖自定义扩展(例如附加查询字符串参数)来告诉 IdP 在哪里进行取消。

或者(不是那么优雅 - 但实用)您可以使用 JavaScript 让用户返回历史记录中的几个步骤?例如:

window.history.go(-2)

I'm not aware of a standard SAML way you could achieve this. You would likely need to rely on custom extensions (such as additional query string parameters) to tell the IdP where to go on cancel.

Alternatively (and not so elegant - but practical) you could use JavaScript to send the user back a couple steps in the history? E.g.:

window.history.go(-2)
情栀口红 2024-12-17 14:34:51

IDP可以向SP返回SAML响应。在 SAML 响应中,您可以使用 Status 元素来指示用户已取消身份验证过程。作为顶级状态代码,您可以使用 urn:oasis:names:tc:SAML:2.0:Responder。您可以使用自己的状态码作为二级状态码。

The IDP can return SAML response to SP. In the SAML response, you can use Status element to indicate that the user has cancelled the authentication process. As the top-level status code, you can use urn:oasis:names:tc:SAML:2.0:Responder. You can use your own status code as the the second-level status code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文