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

目录:

1. 概述编辑

1.1 版本

报表服务器版本
11.0

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方案

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/https方案编辑

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

4.1 http 访问

方案一:统一主域名

参见本文第二章跨站说明。

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

方案二:升级为 https 

升级为 https 后,参考本文 4.2 节内容。

4.2 https 访问

4.2.1 安装插件

插件下载请点击:HTTPS_SameSite_跨域插件

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

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

4.2.2 具体步骤

设置跨域单点登录后,需要单点到的工程安装「HTTPS_SameSite_跨域插件」后,重启工程,即可实现跨站单点登录。

5. 注意事项编辑

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

1622083032745148.png