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

目录:

1. 概述编辑

1.1 版本

报表服务器版本功能变动

11.0


11.0.4内置HTTPS_SameSite_跨域策略,运用见本文第 5 节

1.2 问题描述

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

1.3 原因分析

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

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

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

1.4 解决思路

临时解决方案
需关闭谷歌浏览器的「SameSite by default cookies」选项,重启浏览器
http 解决方案统一主域名
https 解决方案需要单点到的工程安装 HTTPS_SameSite_跨域插件,重启工程

2. 跨站简介编辑

谷歌浏览器 80.0 及以上版本、火狐浏览器 96.0 及以上版本360极速浏览器,不允许 cookie 跨站发送,会导致单点登录失败。

跨站的判断依据:

跨站是用 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,那么它俩就是同一个站点的。

3. 临时解决方案编辑

注1:这一方案同样适用于其他谷歌内核浏览器,如新 edge(访问edge://flags/)、360 安全浏览器(访问se://flags/)等,但不适用于 91 及以上版本的谷歌内核浏览器。

注2:本章提供方案是通过修改谷歌的设置解决的,每台访问的电脑都需要修改谷歌的设置,使用体验差,不太推荐;推荐参考本文第四、五章方案。

在谷歌浏览器地址栏中输入:chrome://flags/,然后在搜索框输入「SameSite」搜索并找到

「SameSite by default cookies」选项,右侧按钮选择「Disabled」,重启谷歌浏览器即可。如下图所示:

在实验室中设置Samesite_by_default_cookies选项

4. http解决方案编辑

http 访问:统一主域名。

谷歌浏览器、火狐浏览器、360极速浏览器均可通过此方案解决。

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

参见本文第二章跨站说明。保证两个工程的顶级域名、次顶级域名相同,比如 a.b.com 和 c.b.com,「.com」顶级,「b」是次顶级。

举例:bbs.fanruan.com、help.fanruan.com,顶级域名均为 .com,次级域名均为 fanruan,这样的两个工程则不会出现此问题。

5. https解决方案编辑

升级为 https 访问:需要单点到的工程安装 HTTPS_SameSite_跨域插件,重启工程。

谷歌浏览器、火狐浏览器、360极速浏览器均可通过此方案解决。

5.1 插件下载

插件下载:HTTPS_SameSite_跨域

设计器插件安装方法请参见: 设计器插件管理

服务器安装插件方法请参见: 服务器插件管理

5.2 插件使用

需要单点到的工程安装「HTTPS_SameSite_跨域插件」并重启后,工程已内置HTTPS_SameSite_跨域策略。

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

注:使用内置HTTPS_SameSite_跨域策略,必须将工程升级到 11.0.4 版本。

6. 注意事项编辑

谷歌最新的 91 版本无法手动关闭 samesite ,samesite 属性全都会默认开启,单点全都会失败,但是「HTTPS_SameSite_跨域插件」正常生效。

1622083032745148.png