先上個圖,畫得比較粗糙,請見諒
1,單點登錄存儲用戶登錄信息,併產生密鑰(軟加密或者硬加密都好,有加密機的項目用硬件加密更安全)
2,從sso跳轉到server1,2,3或者反向跳轉都要驗證密鑰,失敗則回到登錄首頁。
3,在線頁面發送註冊心跳,每個server獨立管理自己的session,但登錄狀態由sso統一管理,由於跨域訪問,每個頁面發送心跳都是跨域的(見上一篇博客),當然心跳也涉及一些加密手段,只有收信任的數據才能接收。
4,達到效果:單點登錄,維持用戶只能登錄一次,並監控用戶實時狀態
5,總結:我的做法有點模擬C/S了,並且安全性還有欠缺,例如網絡傳輸層等等,下一步打算把在線註冊和成熟的SSO開源軟件(例如CAS,OPENSso等)結合起來,再做優化,這只是一個簡單的模型,做法與實際操作還有差異,本人能力和經驗有限,有說錯的地方,希望有經驗者可以指教一下,我還需要優化和學習。
簡單的一些想法做了一下分享,希望大家能給我提出更多的改進意見,我想多多學習一下。