如何在使用 Shibboleth 实现 SSO 时保留 URL 的哈希片段



我已经使用Shibboleth服务提供商在单页应用程序上实现了SSO。问题是,当用户尝试访问带有哈希值的书签 url 时,它会在身份提供程序(在我的例子中是它的 ping 服务器)执行身份验证后丢失 url 的哈希部分。从第二个请求开始,它工作正常。

例如,如果用户尝试访问 https://example.com/index.html#id:12,则会带我 https://example.com/index.html

请求方式:开机自检
状态码:302 移动
响应标头 缓存控制:私有,无
存储,无缓存,最大年龄=0
内容长度:40 内容类型:文本/html 日期:2017 年 6 月 16 日星期五 15:37:41 GMT
到期:星期三, 01 一月 1997 12:00:00 GMT
位置:https://example.com/index.html
服务器:
SetCookie:_shibsession_64656661756c746572612d6465465722d656c6563747269632e636f6d=_ad223f20f29ee122537dab8fdd; 路径=/;安全;HttpOnly
X-Frame-Options:SAMEORIGIN

看起来,shibboleth 在执行重定向时没有维护哈希值。如果看到"位置",则它不保存哈希值。任何帮助,不胜感激。

虽然我不熟悉 Shibboleth 产品,但我建议您在将 URL 包含在联合身份验证之前尝试对 URL 进行 URL 编码。

例:

而不是 https://example.com/index.html#id:12

它将是https%3A%2F%2Fexample.com%2Findex.html%23id%3A12

当您与 IDP 交互时,这可能会产生更好的行为。

最新更新