當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

谷歌瀏覽器單點登入失敗

1. 概述

1.1 版本

FineBI 版本JAR 包版本HTTPS_SameSite_跨域插件
5.02019-04-03
V3.0

1.2 問題描述

谷歌瀏覽器 80 版本及以上單點登入失敗,跳轉到登入頁,其他瀏覽器正常。

1.3 原因分析

由於 cookie 問題導致單點失敗。。

由於 Chrome 最新瀏覽器最新版本(80.0)及以上修改了安全策略,預設 SameSite 策略不允許 cookie 跨站傳送,因此單點登入會失敗。

1.4 解決思路

通用解決方案需關閉谷歌瀏覽器的「SameSite by default cookies」選項,重啓瀏覽器
http/https方案
http 存取:統一主域名

https 存取:需要單點到的工程安裝 HTTPS_SameSite_跨域插件,重啓工程

2. 跨站簡介

Chrome 最新瀏覽器最新版本(80.0)及以上版本,不允許 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」,重啓谷歌瀏覽器即可。如下圖所示:

2.png

4. http/https方案

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_跨域插件」正常生效。

1622083125720085.png

附件列表


主題: 部署集成
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!