CAS與單點登入的流程及原理

2021-07-29 22:21:51 字數 1289 閱讀 6222

cas(central authentication service)

sso (single sign on)

center:cas 認證中心

a:某應用服務

b:另乙個應用服務

ticket granted ticket ( tgt ):全域性票

ticket granted cookie ( tgc ): 存放 tgt id 的 cookie

service ticket ( st ):某個服務的票據

使用者訪問 a

a:登入了嗎(cookie 中的 sessionid),沒有,有票嗎(st),沒有,那去 center 吧(攜帶了的url,一會還得回來呢)

center:有全域性票嗎(tgc 中的 tgt id,不是 sessionid),沒有,那你登入吧。。。

center:登入成功,建立tgt,並將 tgt 的 id 寫到使用者的 cookie(tgc)中,同時生成乙個隨機的 st 讓使用者重定向到 a 的 url

a:登入了嗎(cookie 中的 sessionid),沒有,有票嗎(st),有,a去 center 驗證 st 有效性,有效,建立 session,並將 sessionid 寫到使用者 cookie 裡,使用者以後就用該 sessionid 與 a 進行通訊

使用者訪問 b

b:登入了嗎(cookie 中的 sessionid),沒有,有票嗎(st),沒有,那去 center 吧(攜帶b的url,一會還得回來呢)

center:有全域性票嗎(tgc 中的 tgt id,不是 sessionid),有

center:生成乙個隨機的 st 讓使用者重定向到 b 的 url

b:登入了嗎(cookie 中的 sessionid),沒有,有票嗎(st),有,b 去 center 驗證 st 有效性,有效,建立 session,並將 sessionid 寫到使用者 cookie 裡,使用者以後就用該 sessionid 與 b 進行通訊

使用者登出 a

a 刪除session 並清除使用者的 cookie 中的 sessionid

a 通知 center 使用者登出了

center 刪除 tgt 並清除使用者的 tgc(存放 tgt id 的 cookie)

center 通知所有該使用者訪問的應用

各個應用刪除session 並清除使用者的 cookie 中的 sessionid

CAS單點登入原理

之前我們談了如何關於單點登入的一些概述,講到了當跨網域名稱單點登入時,cas的設計具有參考價值,那麼這篇就該談談cas的具體原理了。cas指的是apereo的cas開源專案,三個字母分別是是central authentication service的首字母縮寫。git 官方文件 截止目前版本已經更...

CAS單點登入原理

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

CAS單點登入流程梳理

新的專案中,需要對接單點登入,於是了解了一下cas的登入流程。按照流程圖,前端需要在初次進頁面的時候,請求伺服器獲取鑑權。服務端發現這個使用者沒有相關憑證的時候,可以返回相應的狀態碼告知前端需要登入。前端跳轉到https cas login?service http 進行登入。登入完成之後,cas會...