3

问题: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 上的referer 标头来找出用户来自哪里。理想情况下,我想在我的 SAML 请求中发送 returnURL=xyz.com/A。

所以问题是有这样的方法吗?

谢谢

4

2 回答 2

1

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

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

window.history.go(-2)
于 2011-10-20T03:45:14.993 回答
0

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

于 2013-03-09T13:57:35.260 回答