URL片段作为SAML令牌身份验证的一部分丢失; 变通方法/标准模式?

 伍贤厚_197 发布于 2023-02-11 14:47

一些Web应用程序身份验证协议(如WS-Federation和SAML协议,即所谓的"被动"协议,以及显然也是ASP.NET Forms身份验证,请参阅此StackOverflow问题,以及AppEngine,请参阅此GWT错误评论)丢失原始的'URL片段',即#-sign之后的部分.

会发生什么大致如下:在干净的浏览器中(所以没有缓存的信息/ cookie /登录信息)我打开URL(1)http://example.com/myapp/somepage?some=parameter#somewhere.这使浏览器请求(2)http://example.com/myapp/somepage?some=parameter,服务器将我重定向到我的身份提供者(包括身份验证请求中的URL(2)),最终我被重定向回到我来自的地方,即URL(2):这是服务器知道的唯一URL.但是我想去URL(1),并且URL片段('anchor')在此过程中已经丢失,实际上已经是第一步了.

这似乎是这些协议的基本限制,因为服务器根本不会看到URL片段.

我知道根据规范,浏览器从服务器请求(2),当我导航到(1)时,导致这个片段丢失限制SAML协议,WS-Federation等.我的问题是:怎么做我解决这个限制?

显而易见的解决方法是避免URL碎片,如本答案中所述.但是,对于我们的特定Web应用程序并不好,因为我们在单页GWT应用程序中使用可收藏的URL片段,以确保我们的应用程序中的导航不会导致页面重新加载.

我的问题:这种情况还有哪些其他解决方法或标准模式?

(我对GWT + SAML协议解决方案特别感兴趣.)

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有