單點登入原理與簡單實現

2021-09-20 00:11:47 字數 2318 閱讀 2495

sso認證中心發現使用者未登入,將使用者引導至登入頁面

使用者輸入使用者名稱密碼提交登入申請

sso認證中心校驗使用者資訊,建立使用者與sso認證中心之間的會話,稱為全域性會話,同時建立授權令牌

sso認證中心帶著令牌跳轉會最初的請求位址(系統1)

系統1拿到令牌,去sso認證中心校驗令牌是否有效

sso認證中心校驗令牌,返回有效,註冊系統1

系統1使用該令牌建立與使用者的會話,稱為區域性會話,返回受保護資源

使用者訪問系統2的受保護資源

系統2發現使用者未登入,跳轉至sso認證中心,並將自己的位址作為引數

sso認證中心發現使用者已登入,跳轉回系統2的位址,並附上令牌

系統2拿到令牌,去sso認證中心校驗令牌是否有效

sso認證中心校驗令牌,返回有效,註冊系統2

系統2使用該令牌建立與使用者的區域性會話,返回受保護資源

全域性會話存在,區域性會話不一定存在

全域性會話銷毀,區域性會話必須銷毀

系統1根據使用者與系統1建立的會話id拿到令牌,向sso認證中心發起登出請求

sso認證中心校驗令牌有效,銷毀全域性會話,同時取出所有用此令牌註冊的系統位址

sso認證中心向所有註冊系統發起登出請求

各註冊系統接收sso認證中心的登出請求,銷毀區域性會話

sso認證中心引導使用者至登入頁面

接收並儲存sso認證中心傳送的令牌

與sso-server通訊,校驗令牌的有效性

建立區域性會話

攔截使用者登出請求,向sso認證中心傳送登出請求

接收sso認證中心發出的登出請求,銷毀區域性會話

建立全域性會話

建立授權令牌

與sso-client通訊傳送令牌

校驗sso-client令牌有效性

系統註冊

接收sso-client登出請求,登出所有會話

public

void

dofilter

(servletrequest request, servletresponse response, filterchain chain)

throws ioexception, servletexception 

//跳轉至sso認證中心

// 請求附帶token引數

原文發布時間為:2018-09-18

」。

單點登入原理與簡單實現

應該是原汁原味的原文 一 假設有三個系統,分別是a.com b.com和sso.com,各自代表a系統,b系統和認證中心 疑問 若a.com系統已登入,當使用者進入b系統時,跳轉到sso後是怎麼判斷使用者已經登入的 1 在a.com系統在sso.com登入認證後 登入時是跳到sso.com登入的,因...

sso單點登入原理與簡單實現

原理如下 使用者訪問系統1的受保護資源,系統1發現使用者未登入,跳轉至sso認證中心,並將自己的位址作為引數 sso認證中心發現使用者未登入,將使用者引導至登入頁面 使用者輸入使用者名稱密碼提交登入申請 sso認證中心校驗使用者資訊,建立使用者與sso認證中心之間的會話,稱為全域性會話,同時建立授權...

cas實現單點登入原理

基於cookie的單點登入核心原理 將使用者名稱密碼加密之後存於cookie中,之後訪問 時在過濾器 filter 中校驗使用者許可權,如果沒有許可權則從cookie中取出使用者名稱密碼進行登入,讓使用者從某種意義上覺得只登入了一次。該方式缺點就是多次傳送使用者名稱密碼,增加被盜風險,以及不能跨域。...