單點登陸與權限管理本質:單點登陸介紹

繼續介紹「單點登陸與權限管理」系列的第一部分:單點登陸與權限管理本質,前兩篇介紹了session與cookieHTTP重定向 ,有了他們,瀏覽器就能夠在多個系統間自動交互,實現自動登陸。後端

該系列的完整寫做計劃,可見:系列概述瀏覽器

本篇介紹下單點登陸,所謂單點登陸,就是說用戶只需在一個地方登陸,訪問其餘相關係統時,不須要重複登陸,隱式地自動登陸,這樣體驗會比較好。安全

主要從如下幾個方面介紹:微信

  • 一個常見的交互流程
  • 常見單點登陸協議
  • 關鍵問題總結

一個常見的交互流程

咱們項目中,使用CAS協議實現單點登陸,下面就以項目中的實現爲例,先來看下其交互流程,對其實現有個基本的瞭解。cookie

有2個系統,系統A是「客服工做臺」,主要給客服使用,可實時與來訪用戶及時聊天,解答用戶的問題。系統B是「工單系統」,對於不能解答的問題,客服會建立一個工單,更高級別或相關度高的人會看到工單進行處理。session

客服但願在登陸系統A後,不須要手動登陸系統B,須要一個「單點登陸服務」,提供一個統一的登陸驗證,協調系統A、系統B的自動登陸,定義該服務爲服務S,其CAS協議的場景的流程以下:post

CAS協議交互圖

花了很多時間畫上面的圖,看着比較複雜,其實還好,但願你們花時間看下,若是前兩篇文章真正理解了,這塊就相對簡單了。網站

重點總結下該流程:cdn

  • 黑圓圈紅字,標識cookie的生成和使用,ABCDE表示5個cookie,1表示生成,2表示使用;
  • 不管是系統A,仍是系統B,若是沒有jessionid cookie,都會跳轉到服務S,若是攜帶了cookie1(登陸成功後生成的cookie),不須要登陸,會自動登陸,若是沒有攜帶cookie1,會跳轉到登陸頁面,登陸成功後會設置cookie1。
  • cookie1是保持瀏覽器和服務S的,表示用戶已經登陸過了;
  • cookie二、cookie4都是臨時cookie,主要是將服務碼帶到系統A或系統B,拿到服務碼後,經過後端請求服務S進行驗證,驗證事後,臨時cookie就失效了,主要是爲了安全考慮。
  • cookie三、cookie5和咱們正常登陸產生的jessionid同樣,是各個子系統獨有的cookie;

若是還有疑問,可在下面留言,我會第一時間回覆。blog

常見單點登陸協議

上面介紹的是CAS協議的一種,還有其餘協議可實現單點登陸,好比CAS官網列舉的協議:

常見單點登陸協議

這些協議有不一樣的適用場景,好比好多網站都支持使用QQ、微信、微博直接登陸,只要你的QQ、微信、微博登陸者,就不用重複登陸,使用OAuth協議可比較好的實現這種場景。

後面會單獨介紹這些協議。

關鍵問題總結

不管是哪種協議,都須要一箇中間系統,對驗證和受權進行統一管理。另外,cookie的管理和安全問題須要重點考慮。

後面一篇會介紹下可能存在哪些安全問題,而對於安全問題如何解決,cookie和session具體如何管理,會在介紹每一個具體協議的時候重點說明。

系列索引:

  1. session和cookie介紹
  2. HTTP重定向
  3. 單點登陸介紹
  4. cookie安全問題
  5. 權限管理介紹

情情說
相關文章
相關標籤/搜索