亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

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

什么是SSO單點登錄?3大單點登錄實現(xiàn)詳解

admin
2025年6月28日 22:4 本文熱度 117

單點登錄在大型網(wǎng)站里使用得非常頻繁,而且也屬于分布式架構(gòu)的必備知識,之前談了分布式全局唯一ID,本篇接著談另外一個非常重要的核心技能,那就是單點登錄SSO。


本篇會非常全面的來詳解單點登錄SSO的來龍去脈,以及3大實現(xiàn)方式@mikechen

什么是單點登錄

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

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

?

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

單點登錄的來源

1.早期web單系統(tǒng)應(yīng)用

早期我們開發(fā)web應(yīng)用都是所有的包放在一起打成一個war包放入tomcat容器來運行的,所有的功能,所有的業(yè)務(wù),后臺管理,門戶界面,都是由這一個war來支持的,這樣的單應(yīng)用,也稱之為巨石應(yīng)用,因為十分不好擴展和拆分。

在巨石應(yīng)用下,用戶的登錄以及權(quán)限就顯得十分簡單,當(dāng)瀏覽器向服務(wù)器發(fā)送登錄請求時,驗證通過之后,會將用戶信息存入seesion中,然后服務(wù)器會生成一個sessionId放入cookie中,隨后返回給瀏覽器。

大致可以用下圖來表示:

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

2.分布式集群部署

由于網(wǎng)站的訪問量越來也大,單機部署已經(jīng)是巨大瓶頸,所以才有了后來的分布式集群部署。

例如:如果引入集群的概念,單應(yīng)用可能重新部署在3臺tomcat以上服務(wù)器,使用nginx來實現(xiàn)反向代理。

但是增加新的服務(wù)器之后,不同的服務(wù)器之間的sessionId是不一樣的,可能在A服務(wù)器上已經(jīng)登錄成功了,能從服務(wù)器的session中獲取用戶信息,但是在B服務(wù)器上卻查不到session信息,只好退出來繼續(xù)登錄,結(jié)果A服務(wù)器中的session因為超時失效,登錄之后又被強制退出來要求重新登錄。

所以不得不考慮多服務(wù)器之間的session數(shù)據(jù)一致的問題,這就是單點登錄的最早來源。

單點登錄的實現(xiàn)方式

單點登錄的本質(zhì)就是在多個應(yīng)用系統(tǒng)中共享登錄狀態(tài),如果用戶的登錄狀態(tài)是記錄在 Session 中的,要實現(xiàn)共享登錄狀態(tài),就要先共享 Session。

所以實現(xiàn)單點登錄的關(guān)鍵在于,如何讓 Session ID(或 Token)在多個域中共享。

1.同域下的單點登錄

一個企業(yè)一般情況下只有一個域名,通過二級域名區(qū)分不同的系統(tǒng)。

比如我有個域名:mikechen.cc,同時有兩個業(yè)務(wù)系統(tǒng)分別為:

  1. blog.mikechen.cc

  2. video.mikechen.cc

我們要做單點登錄(SSO),需要一個登錄系統(tǒng),叫做:sso.mikechen.cc。

我們只要在sso.mikechen.cc登錄,blog.mikechen.cc和video.mikechen.cc也登錄了。

實現(xiàn)方式:其實這里就是利用了 二級域名 寫 一級域名的 Cookie 。

sso.mikechen.cc登錄以后,可以將Cookie的域設(shè)置為頂域,即.mikechen.cc,這樣所有子域blog.mikechen.cc和video.mikechen.cc的系統(tǒng)都可以訪問到頂域的Cookie。

此種實現(xiàn)方式比較簡單,但不支持跨主域名,局限性限于一級域名是一樣的。

2.不同域下的單點登錄

同域下的單點登錄是巧用了Cookie頂域的特性,如果是不同域呢,比如:下面三個是不同域的

  1. mikechen1.cc

  2. mikechen2.cc

  3. mikechen3.cc

實現(xiàn)方式:我們可以部署一個SSO認證中心,認證中心就是一個專門負責(zé)處理登錄請求。

所有的請求(登錄、退出、獲取用戶信息、當(dāng)前用戶狀態(tài))都請求sso 系統(tǒng),sso 系統(tǒng)維護用戶信息。

此種實現(xiàn)方式相對復(fù)雜,支持跨域,擴展性好。

基于SSO認證中心的開源項目代表:CAS,其中 CAS是Central Authentication Service,即中央認證服務(wù),下圖是CAS的基本過程:


閱讀原文:原文鏈接


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