摘要:用戶登錄成功之后,會與認證中心及各個子系統建立會話,用戶與認證中心建立的會話稱為全局會話,用戶與各個子系統建立的會話稱為局部會話。
一、單點登錄概念在工作中,有這樣一個需求,因為公司有多個管理平臺,每次登錄一個平臺都需要輸入賬號和密碼進行登錄,特別麻煩,所以,希望只需登錄一個平臺的賬號和密碼,其他平臺的不用輸入賬號和密碼也可以自動登錄,即單點登錄,經過兩周的研究和實踐,終于完成了該需求,目前公司的兩個管理平臺已經實現了單點登錄,現將兩周的研究成果總結一下。
什么是單點登錄?單點登錄全稱 Single Sign On(以下簡稱SSO),是指在多系統應用群中登錄一個系統,便可在其他所有系統中得到授權而無需再次登錄,包括單點登錄與單點注銷兩部分。
二、單點登錄的兩種方式 1.同域名共享cookie用戶登錄成功之后,會與sso認證中心及各個子系統建立會話,用戶與sso認證中心建立的會話稱為全局會話,用戶與各個子系統建立的會話稱為局部會話。
如果你的所有平臺都是在同一個域名下,那么可以使用同域名共享cookie的方式來完成單點登錄的信息共享。
將web應用群中所有子系統的域名統一在一個頂級域名下,例如“*.baidu.com”,然后將它們的cookie域設置為“baidu.com”,這種做法理論上是可以的,甚至早期很多多系統登錄就采用這種同域名共享cookie的方式。
然而,可行并不代表好,共享 cookie 的方式存在眾多局限。首先,應用群域名得統一;其次,應用群各系統使用的技術(至少是web服務器)要相同,不然cookie的key值(tomcat為JSESSIONID)不同,無法維持會話,共享cookie的方式是無法實現跨語言技術平臺登錄的,比如java、php、.net系統之間;第三,cookie本身不安全。
因此,我們需要一種全新的登錄方式來實現多系統應用群的登錄,這就是單點登錄
2、SSO認證授權登錄上一種方法有很大的局限性,如果跨域名,就實現不了,這里我們可以借助第三方授權來實現。要實現多個平臺單點登錄,前提是多個平臺必須要有一個唯一的賬號,如手機號,郵箱,或用戶名,這樣才可以判斷出是哪個用戶。
具體實現思路假如公司有兩個不同域名或IP下的管理網站,a.com,b.com,我們想要輸入用戶名和密碼登錄a.com, 即可自動登錄b.com,怎么實現呢?
登錄a.com后會在a平臺產生會話信息,如果我們登錄b.com,怎么判斷該用戶已經登錄a平臺了,然后自己登錄?這里我們需要借助第三方平臺來做授權驗證,即c.com,該授權中心維護一套共有的賬號和密碼,當用戶訪問 a.com 后,我們會跳轉到 c.com,并帶上a.com 這個來源訪問地址,在c.com 中判斷是否有登錄,如果未登錄,則給出登錄界面,登錄成功后,則產生會話信息,同時生成一個授權Token,保存在c.com cookie 中,然后返回給原地址,如果已經登錄(即已經授權過了),則拿到cookie中保存的Token信息然后回跳到原來的訪問地址,a.com 判斷有Token信息,則拿著這個Token發送http請求到c.com,判斷該Token是否有效,如果有效,則返回給用戶信息,然后a.com拿到信息后,自動登錄a.com;
當訪問 b.com 時,也會去 c.com 中判斷是否已經授權過了,因為a.com 已經授過權了,則會給b.com 返回授權Token,然后b.com 判斷該Token是否有效,如果有效,則會返回給用戶信息,b.com 自動登錄,這就是單點登錄的一個簡單的流程。
一個完整的流程圖:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25571.html
摘要:上一篇文章簡單介紹了在本地開發環境中搭建服務端和客戶端,對單點登錄過程有了一個直觀的認識之后,本篇將探討單點登錄的實現原理。因此引入服務端作為用戶信息鑒別和傳遞中介,達到單點登錄的效果。為該流程的實現類。表示對返回結果的處理。 上一篇文章簡單介紹了 CAS 5.2.2 在本地開發環境中搭建服務端和客戶端,對單點登錄過程有了一個直觀的認識之后,本篇將探討 CAS 單點登錄的實現原理。 一...
摘要:兩個域之間是不是存在跨域問題,主要是根據協議域名端口號這三個點進行判斷,只要有一個不一樣就是跨域。例如協議不同與域名不同與端口號不同與瀏覽器默認情況下無法主動跨域向后端發送,需要在前端請求時加入配置項。據此,可以實現單點登錄。 cookie是什么 cookie的英文意思是餅干。在計算機術語中指服務端存放在客戶端的一段數據。這段數據在客戶端每次進行http請求時會自動加在http請求報文...
摘要:兩個域之間是不是存在跨域問題,主要是根據協議域名端口號這三個點進行判斷,只要有一個不一樣就是跨域。例如協議不同與域名不同與端口號不同與瀏覽器默認情況下無法主動跨域向后端發送,需要在前端請求時加入配置項。據此,可以實現單點登錄。 cookie是什么 cookie的英文意思是餅干。在計算機術語中指服務端存放在客戶端的一段數據。這段數據在客戶端每次進行http請求時會自動加在http請求報文...
摘要:如果一旦加密算法泄露了,攻擊者可以在本地建立一個實現了登錄接口的假冒父應用,通過綁定來把子應用發起的請求指向本地的假冒父應用,并作出回應。 1.什么是單點登錄? 單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。客戶端持有ID,服務端持有session...
閱讀 781·2021-11-09 09:47
閱讀 1568·2019-08-30 15:44
閱讀 1143·2019-08-26 13:46
閱讀 2107·2019-08-26 13:41
閱讀 1266·2019-08-26 13:32
閱讀 3772·2019-08-26 10:35
閱讀 3519·2019-08-23 17:16
閱讀 448·2019-08-23 17:07