相同網域名稱下實現單點登入太簡單,因為a系統和b系統網域名稱相同,在訪問a時候登入過,在訪問b時,由於網域名稱相同,瀏覽器會帶上cookies,cookies裡有票據資訊,訪問b自然就不用再登入了。
可是如果a系統和b系統網域名稱不同,cas是怎樣做到已經在訪問a系統時候登入過,在訪問b系統時就不用再重新登入了呢?此時訪問b系統,因為網域名稱不同的緣故,瀏覽器沒有帶上儲存有票據資訊的cookies啊,好了此時cas實現單點登入的原理是這樣的,請看圖:
注意:在
cas4.2.7
中,這個跨域單點登入的功能需要你啟用
協議,上圖中你需要體會的是在上圖的第9個步驟上,那時訪問b系統,因為是跨域,而且是首次訪問,ticket是為空的,而經過一系列的重定向,加引數之後,你發現使用者啥操作都沒做,但是在第13步訪問b系統時候,已經帶上了有效的ticket,因為這一系列重定向對使用者是透明的,使用者感覺自己啥也沒做就實現了對b系統的訪問。
CAS單點登入原理
之前我們談了如何關於單點登入的一些概述,講到了當跨網域名稱單點登入時,cas的設計具有參考價值,那麼這篇就該談談cas的具體原理了。cas指的是apereo的cas開源專案,三個字母分別是是central authentication service的首字母縮寫。git 官方文件 截止目前版本已經更...
CAS單點登入原理
基於cookie的單點登入核心原理 將使用者名稱密碼加密之後存於cookie中,之後訪問 時在過濾器 filter 中校驗使用者許可權,如果沒有許可權則從cookie中取出使用者名稱密碼進行登入,讓使用者從某種意義上覺得只登入了一次。該方式缺點就是多次傳送使用者名稱密碼,增加被盜風險,以及不能跨域。...
cas實現單點登入原理
基於cookie的單點登入核心原理 將使用者名稱密碼加密之後存於cookie中,之後訪問 時在過濾器 filter 中校驗使用者許可權,如果沒有許可權則從cookie中取出使用者名稱密碼進行登入,讓使用者從某種意義上覺得只登入了一次。該方式缺點就是多次傳送使用者名稱密碼,增加被盜風險,以及不能跨域。...