反馈已提交

网络繁忙

谷歌浏览器单点登录失败

  • 文档创建者:知识库
  • 编辑次数:13次
  • 最近更新:Leo.Tsai 于 2022-04-18
  • 1. 概述

    1.1 版本

    报表服务器版本功能变动

    11.0


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

    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极速浏览器均可通过此方案解决。

    方案一:统一主域名

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

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

    方案二:升级为 https 

    升级为 https ,设置跨域单点登录后,工程现在是内置HTTPS_SameSite_跨域策略的,可直接实现跨站单点登录。

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

    5. 注意事项

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

    1622083032745148.png

    附件列表


    主题: 部署集成
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭