單點登錄系統(tǒng)流程

學(xué)習(xí)完整課程請移步 互聯(lián)網(wǎng) Java 全棧工程師

本節(jié)視頻

什么是單點登錄

什么是單點登錄?單點登錄全稱 Single Sign On(以下簡稱 SSO),是指在多系統(tǒng)應(yīng)用群中登錄一個系統(tǒng),便可在其他所有系統(tǒng)中得到授權(quán)而無需再次登錄,包括單點登錄與單點注銷兩部分

單點登錄

相比于單系統(tǒng)登錄,sso 需要一個獨立的認(rèn)證中心,只有認(rèn)證中心能接受用戶的用戶名密碼等安全信息,其他系統(tǒng)不提供登錄入口,只接受認(rèn)證中心的間接授權(quán)。間接授權(quán)通過令牌實現(xiàn),sso 認(rèn)證中心驗證用戶的用戶名密碼沒問題,創(chuàng)建授權(quán)令牌,在接下來的跳轉(zhuǎn)過程中,授權(quán)令牌作為參數(shù)發(fā)送給各個子系統(tǒng),子系統(tǒng)拿到令牌,即得到了授權(quán),可以借此創(chuàng)建局部會話,局部會話登錄方式與單系統(tǒng)的登錄方式相同。這個過程,也就是單點登錄的原理,用下圖說明

下面對上圖簡要描述

  • 用戶訪問系統(tǒng) 1 的受保護(hù)資源,系統(tǒng)1發(fā)現(xiàn)用戶未登錄,跳轉(zhuǎn)至 sso 認(rèn)證中心,并將自己的地址作為參數(shù)
  • sso 認(rèn)證中心發(fā)現(xiàn)用戶未登錄,將用戶引導(dǎo)至登錄頁面
  • 用戶輸入用戶名密碼提交登錄申請
  • sso 認(rèn)證中心校驗用戶信息,創(chuàng)建用戶與 sso 認(rèn)證中心之間的會話,稱為全局會話,同時創(chuàng)建授權(quán)令牌
  • sso 認(rèn)證中心帶著令牌跳轉(zhuǎn)會最初的請求地址(系統(tǒng)1)
  • 系統(tǒng)1拿到令牌,去 sso 認(rèn)證中心校驗令牌是否有效
  • sso 認(rèn)證中心校驗令牌,返回有效,注冊系統(tǒng) 1
  • 系統(tǒng) 1 使用該令牌創(chuàng)建與用戶的會話,稱為局部會話,返回受保護(hù)資源
  • 用戶訪問系統(tǒng) 2 的受保護(hù)資源
  • 系統(tǒng)2發(fā)現(xiàn)用戶未登錄,跳轉(zhuǎn)至 sso 認(rèn)證中心,并將自己的地址作為參數(shù)
  • sso 認(rèn)證中心發(fā)現(xiàn)用戶已登錄,跳轉(zhuǎn)回系統(tǒng) 2 的地址,并附上令牌
  • 系統(tǒng) 2 拿到令牌,去 sso 認(rèn)證中心校驗令牌是否有效
  • sso 認(rèn)證中心校驗令牌,返回有效,注冊系統(tǒng) 2
  • 系統(tǒng) 2 使用該令牌創(chuàng)建與用戶的局部會話,返回受保護(hù)資源

用戶登錄成功之后,會與 sso 認(rèn)證中心及各個子系統(tǒng)建立會話,用戶與 sso 認(rèn)證中心建立的會話稱為全局會話,用戶與各個子系統(tǒng)建立的會話稱為局部會話,局部會話建立之后,用戶訪問子系統(tǒng)受保護(hù)資源將不再通過 sso 認(rèn)證中心,全局會話與局部會話有如下約束關(guān)系

  • 局部會話存在,全局會話一定存在
  • 全局會話存在,局部會話不一定存在
  • 全局會話銷毀,局部會話必須銷毀

單點注銷

單點登錄自然也要單點注銷,在一個子系統(tǒng)中注銷,所有子系統(tǒng)的會話都將被銷毀,用下面的圖來說明

sso 認(rèn)證中心一直監(jiān)聽全局會話的狀態(tài),一旦全局會話銷毀,監(jiān)聽器將通知所有注冊系統(tǒng)執(zhí)行注銷操作

  • 用戶向系統(tǒng) 1 發(fā)起注銷請求
  • 系統(tǒng)1根據(jù)用戶與系統(tǒng)1建立的會話 id 拿到令牌,向 sso 認(rèn)證中心發(fā)起注銷請求
  • sso 認(rèn)證中心校驗令牌有效,銷毀全局會話,同時取出所有用此令牌注冊的系統(tǒng)地址
  • sso 認(rèn)證中心向所有注冊系統(tǒng)發(fā)起注銷請求
  • 各注冊系統(tǒng)接收 sso 認(rèn)證中心的注銷請求,銷毀局部會話
  • sso 認(rèn)證中心引導(dǎo)用戶至登錄頁面
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容