單點登錄實現原理筆記

 

一.單系統登錄機制
1.http 爲無狀態請求 每次請求之間沒有關聯
2.要鑑別瀏覽器請求,需服務器和瀏覽器共同維護一個狀態,即會話機制
2-1.瀏覽器第一次請求,服務器創建一個會話id,返回瀏覽器存儲,以後每次請求都帶上會話id
2-2.瀏覽器保存會話id方式:1-cookie 存儲少量key/value數據,發送http請求時自動附帶
2-3.tomcat中的cookie,名爲JSESSIONID
3.登錄狀態,tomcat服務器通過session setAttribute 設置 getAttribute 查看登錄狀態

二.多系統的複雜性
1.當由單系統變爲多系統的時候,用戶也應只登錄一次就可訪問多個系統
2.cookie的限制在於域,通常對應網站的域名,不同系統網站有不同的域
3.使用一個頂級域名不可避免不同語音實現的後臺系統之間的登錄問題

三.單點登錄 Single Sign On (SSO)
1.sso需要單獨的認證中心提供登錄認證,其他系統不提供
2.間接授權通過令牌實現
3.單個系統登錄狀態判斷依然使用cookie、session
3-1.驗證用戶未登錄,攜帶自身地址跳轉sso認證中心
3-2.sso認證中心通過session判斷用戶未登錄,跳轉至登錄界面
3-3.驗證用戶名和密碼,成功後session設置爲登錄狀態
3-4.創建授權令牌,他是隨機字符串,不重複不易僞造即可,可用uuid生成
3-5.攜帶令牌跳轉回子系統
3-6.子系統通過令牌去驗證,驗證成功將令牌與地址存入數據庫(redis)中,之後註銷時使用
3-7.用戶註銷,跳轉至sso系統註銷,sso要有一個全局會話監聽器,向所有子系統發送註銷請求
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章