去年公司也曾經做過一個單點登錄模塊,兩個站點,同事是基於cookie和session來實現的,在那個模塊中並沒有單獨的用戶認證中心,每個子站都有自己的登錄系統,在判斷用戶是否登錄時,首先是通過判斷cookie是否存在來判斷用戶登錄與否.如果cookie值存在則寫入session,保存登錄票據.
一般基於cookie的程序,在某種程度上來說最大的問題就是安全,因為它是以文件形式存儲在客戶端的.所以一般非常重要的信息,例如用戶登錄信息,用戶銀行卡信息都不會采用cookie來存儲.盡管cookie可以加密,但個人總覺的不放心.為此本人一直在尋找一種安全級別高點的單點登錄方案.
前不久,本人看到了這篇文章:單點登陸(SSO)組件的設計與實現一,發現它是基於session的,當時特別奇怪,因為平時我們知道session是不能跨應用程序的,後來仔細分析下才知道原理:
按照程序的思想,我改下了實現的流程圖,個人好理解些:
如果原博主看到了這張圖,還望評價下是否符合原文思想呢?本人對這方面的經驗還不是特別多,只能理解到此啦,望大家指教.
本人除了更改單點登錄的流程圖外還想探討下基於cookie以及基於session兩種方式實現的區別及好處:
在上面的解決方案中,聯盟站點想要實現單點登錄,就一定要與認證中心交互,這樣就要在WEB中傳遞用戶登錄信息,一般都包括用戶名和用戶登錄密碼.這是我們最關心的問題,因為密碼這種非常重要的信息在WEB中傳遞也是相當
危險的,主要是有非法用戶去截獲傳遞信息來篡改用戶信息。
上面的解決方案原博主實現的非常好,這裡我就引用下原文吧: