历史版本26 :谷歌浏览器单点登录失败 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本功能变动

11.0


11.0.4内置HTTPS_SameSite_跨域策略

1.2 问题描述

谷歌浏览器 80.0 及以上版本、火狐浏览器 96.0 及以上版本、360极速浏览器,单点登录失败,跳转到登录页,其他浏览器正常。

1.3 原因分析

由于 cookie 问题导致单点失败。

谷歌浏览器 80.0 及以上版本、火狐浏览器 96.0 及以上版本均修改了安全策略,默认 SameSite 策略不允许 cookie 跨站发送,因此单点登录会失败。

360极速浏览器使用了谷歌浏览器内核,也有可能出现这个情况。

2. 解决方案编辑

2.1 https解决方案

若已升级工程为 https,且工程版本为11.0.4及之后,即可直接使用产品内置的HTTPS_SameSite_跨域策略。

https 设置跨域单点登录后,可直接实现跨站单点登录。

2.2 http解决方案

注:本节方案配置比较复杂,推荐将工程升级为 https 后,再参考本文2.1节优化。

解决方案:

参考下方跨站说明,保证两个工程的顶级域名、次顶级域名相同,比如 a.b.com 和 c.b.com,「.com」顶级,「b」是次顶级。
举例:bbs.fanruan.com、help.fanruan.com,顶级域名均为 .com,次级域名均为 fanruan,这样的两个工程则不会出现此问题。

跨站说明:

跨站是用 Public Suffix List 域名后缀列表 来判断的。

两个 URL ,顶级域名和次顶级域名内容(后面用 public suffix+1 指代)相同,为同站:

  • 顶级域名:从 Public Suffix List 域名后缀列表中匹配的最长后缀长度。

  • 次顶级域名:顶级域名前面的字段。

注:顶级域名列表可参见:顶级域名列表

比如 www.sina.com.cn 的 public suffix+1 是 sina.com.cnwww.sohu.com.cn 的 public suffix+1 是 sohu.com.cn, 两者不一样,所以不属于同一个站点。

再比如 nanzhuang.taobao.com 的 public suffix+1 是 taobao.comnvzhuang.taobao.com 的 public suffix+1 也是 taobao.com,那么它俩就是同一个站点的。

2.3 临时解决方案

该临时方案是通过修改谷歌的设置解决的,每台访问工程的电脑都需要修改谷歌的设置,使用体验差,不太推荐;推荐使用2.1节方案。

该临时方案适用于所有谷歌内核浏览器,如新 edge(访问edge://flags/)、360 安全浏览器(访问se://flags/)等,但不适用于 91 及以上版本的谷歌内核浏览器。

在谷歌浏览器地址栏中输入:chrome://flags/,然后在搜索框输入「SameSite」搜索并找到「SameSite by default cookies」选项,右侧按钮选择「Disabled」。

设置完成后,需要重启谷歌浏览器,方可生效。如下图所示:

在实验室中设置Samesite_by_default_cookies选项