LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

單點(diǎn)登錄的原理、實(shí)現(xiàn)、及技術(shù)方案比較詳解

admin
2025年6月28日 21:57 本文熱度 441

本篇和大家分享、探討SSO(單點(diǎn)登錄),內(nèi)容涉及SSO的定義、表現(xiàn)、原理、實(shí)現(xiàn)細(xì)節(jié)等方面的闡述@mikechen


一、單點(diǎn)登錄介紹


單點(diǎn)登錄(Single Sign On),簡(jiǎn)稱為 SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。


單點(diǎn)登錄SSO(Single Sign On)說(shuō)得簡(jiǎn)單點(diǎn)就是在一個(gè)多系統(tǒng)共存的環(huán)境下,用戶在一處登錄后,就不用在其他系統(tǒng)中登錄,也就是用戶的一次登錄能得到其他所有系統(tǒng)的信任。


二、為什么需要單點(diǎn)登錄


單點(diǎn)登錄在大型網(wǎng)站里使用得非常頻繁,例如,阿里旗下有淘寶、天貓、支付寶等網(wǎng)站,還有背后的成百上千的子系統(tǒng),用戶一次操作或交易可能涉及到幾十個(gè)子系統(tǒng)的協(xié)作,如果每個(gè)子系統(tǒng)都需要用戶認(rèn)證,不僅用戶會(huì)瘋掉,各子系統(tǒng)也會(huì)為這種重復(fù)認(rèn)證授權(quán)的邏輯搞瘋掉。



所以,單點(diǎn)登錄要解決的就是,用戶只需要登錄一次就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)。



三、單點(diǎn)登錄的來(lái)源


1.早期的單機(jī)部署:web單系統(tǒng)應(yīng)用


早期我們開(kāi)發(fā)web應(yīng)用都是所有的包放在一起打成一個(gè)war包放入tomcat容器來(lái)運(yùn)行的,所有的功能,所有的業(yè)務(wù),后臺(tái)管理,門戶界面,都是由這一個(gè)war來(lái)支持的,這樣的單應(yīng)用,也稱之為巨石應(yīng)用,因?yàn)槭植缓脭U(kuò)展和拆分。


在巨石應(yīng)用下,用戶的登錄以及權(quán)限就顯得十分簡(jiǎn)單,用戶登錄成功后,把相關(guān)信息放入會(huì)話中,HTTP維護(hù)這個(gè)會(huì)話,再每次用戶請(qǐng)求服務(wù)器的時(shí)候來(lái)驗(yàn)證這個(gè)會(huì)話即可,大致可以用下圖來(lái)表示:


驗(yàn)證登錄的這個(gè)會(huì)話就是session,維護(hù)了用戶狀態(tài),也就是所謂的HTTP有狀態(tài)協(xié)議,我們經(jīng)常可以在瀏覽器中看到JSESSIONID,這個(gè)就是用來(lái)維持這個(gè)關(guān)系的key。



2.分布式集群部署

由于網(wǎng)站的訪問(wèn)量越來(lái)也大,單機(jī)部署已經(jīng)是巨大瓶頸,所以才有了后來(lái)的分布式集群部署。例如:如果引入集群的概念,1單應(yīng)用可能重新部署在3臺(tái)tomcat以上服務(wù)器,使用nginx來(lái)實(shí)現(xiàn)反向代理, 此時(shí),這個(gè)session就無(wú)法在這3臺(tái)tomcat上共享,用戶信息會(huì)丟失,所以不得不考慮多服務(wù)器之間的session同步問(wèn)題,這就是單點(diǎn)登錄的來(lái)源。


四、單點(diǎn)登錄的原理和實(shí)現(xiàn)


單點(diǎn)登錄的實(shí)現(xiàn)方案,一般就包含以下三種:


  • Cookies

  • Session同步

  • 分布式Session方式


目前的大型網(wǎng)站都是采用分布式Session的方式。我先從cookie的實(shí)現(xiàn)談起,你就能很清楚的知道為什么需要分布式session方式實(shí)現(xiàn)單點(diǎn)登錄。


基于Cookie的單點(diǎn)登錄


最簡(jiǎn)單的單點(diǎn)登錄實(shí)現(xiàn)方式,是使用cookie作為媒介,存放用戶憑證。用戶登錄父應(yīng)用之后,應(yīng)用返回一個(gè)加密的cookie,當(dāng)用戶訪問(wèn)子應(yīng)用的時(shí)候,攜帶上這個(gè)cookie,授權(quán)應(yīng)用解密cookie并進(jìn)行校驗(yàn),校驗(yàn)通過(guò)則登錄當(dāng)前用戶。


不難發(fā)現(xiàn)以上方式把信任存儲(chǔ)在客戶端的Cookie中,這種方式很容易令人質(zhì)疑:


  • Cookie不安全

  • 不能跨域?qū)崿F(xiàn)免登


對(duì)于第一個(gè)問(wèn)題,通過(guò)加密Cookie可以保證安全性,當(dāng)然這是在源代碼不泄露的前提下。如果Cookie的加密算法泄露,攻擊者通過(guò)偽造Cookie則可以偽造特定用戶身份,這是很危險(xiǎn)的。


對(duì)于第二個(gè)問(wèn)題,不能跨域?qū)崿F(xiàn)免登更是硬傷。所以,才有了以下的分布式session方案。



五、分布式session方式實(shí)現(xiàn)單點(diǎn)登錄


例如,阿里有很多系統(tǒng)分割為多個(gè)子系統(tǒng),獨(dú)立部署后,不可避免的會(huì)遇到會(huì)話管理的問(wèn)題,類似這樣的電商網(wǎng)站一般采用分布式Session實(shí)現(xiàn)。


再進(jìn)一步可以根據(jù)分布式Session,建立完善的單點(diǎn)登錄或賬戶管理系統(tǒng)。



流程運(yùn)行:


  1. 用戶第一次登錄時(shí),將會(huì)話信息(用戶Id和用戶信息),比如以用戶Id為Key,寫入分布式Session;


  2. 用戶再次登錄時(shí),獲取分布式Session,是否有會(huì)話信息,如果沒(méi)有則調(diào)到登錄頁(yè);


  3. 一般采用Cache中間件實(shí)現(xiàn),建議使用Redis,因此它有持久化功能,方便分布式Session宕機(jī)后,可以從持久化存儲(chǔ)中加載會(huì)話信息;


  4. 存入會(huì)話時(shí),可以設(shè)置會(huì)話保持的時(shí)間,比如15分鐘,超過(guò)后自動(dòng)超時(shí);


結(jié)合Cache中間件,實(shí)現(xiàn)的分布式Session,可以很好的模擬Session會(huì)話。



六、總結(jié)


以上分別從單點(diǎn)登錄的原理、來(lái)源、實(shí)現(xiàn)機(jī)制來(lái)完整的解讀單點(diǎn)登錄。實(shí)現(xiàn)單點(diǎn)登錄說(shuō)到底就是要解決如何產(chǎn)生和存儲(chǔ)那個(gè)信任,再就是其他系統(tǒng)如何驗(yàn)證這個(gè)信任的有效性,因此要點(diǎn)也就以下兩個(gè):


  • 存儲(chǔ)信任

  • 驗(yàn)證信任


存儲(chǔ)信任建議可以采用分布式文件存儲(chǔ)redis來(lái)實(shí)現(xiàn)。


閱讀原文:原文鏈接


該文章在 2025/7/2 0:01:38 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲喷奶水中文字幕电影 | 亚洲欧美中文日韩二区 | 欧美视频精品一区二区 | 精品少妇性服务中文字幕 | 中文字幕在线观看不卡 | 亚洲欧美中文日韩v在线观看不卡 |