繼續介紹「單點登陸與權限管理」系列的第一部分:單點登陸與權限管理本質,前兩篇介紹了session與cookie 和 HTTP重定向 ,有了他們,瀏覽器就能夠在多個系統間自動交互,實現自動登陸。後端
該系列的完整寫做計劃,可見:系列概述瀏覽器
本篇介紹下單點登陸,所謂單點登陸,就是說用戶只需在一個地方登陸,訪問其餘相關係統時,不須要重複登陸,隱式地自動登陸,這樣體驗會比較好。安全
主要從如下幾個方面介紹:微信
咱們項目中,使用CAS協議實現單點登陸,下面就以項目中的實現爲例,先來看下其交互流程,對其實現有個基本的瞭解。cookie
有2個系統,系統A是「客服工做臺」,主要給客服使用,可實時與來訪用戶及時聊天,解答用戶的問題。系統B是「工單系統」,對於不能解答的問題,客服會建立一個工單,更高級別或相關度高的人會看到工單進行處理。session
客服但願在登陸系統A後,不須要手動登陸系統B,須要一個「單點登陸服務」,提供一個統一的登陸驗證,協調系統A、系統B的自動登陸,定義該服務爲服務S,其CAS協議的場景的流程以下:post
花了很多時間畫上面的圖,看着比較複雜,其實還好,但願你們花時間看下,若是前兩篇文章真正理解了,這塊就相對簡單了。網站
重點總結下該流程:cdn
若是還有疑問,可在下面留言,我會第一時間回覆。blog
上面介紹的是CAS協議的一種,還有其餘協議可實現單點登陸,好比CAS官網列舉的協議:
這些協議有不一樣的適用場景,好比好多網站都支持使用QQ、微信、微博直接登陸,只要你的QQ、微信、微博登陸者,就不用重複登陸,使用OAuth協議可比較好的實現這種場景。
後面會單獨介紹這些協議。
不管是哪種協議,都須要一箇中間系統,對驗證和受權進行統一管理。另外,cookie的管理和安全問題須要重點考慮。
後面一篇會介紹下可能存在哪些安全問題,而對於安全問題如何解決,cookie和session具體如何管理,會在介紹每一個具體協議的時候重點說明。
系列索引: