單點登錄(SSO)和多點登錄


SSO(單點登錄)的概念:在一個多系統共存的環境下,用戶在一處登錄后,就不用再其他系統中登錄,也就是用戶的一次登錄能得到其他所有系統的信任。

SSO(單點登錄)的應用場景:單點登錄在大型網站使用非常頻繁,例如阿里巴巴網站,在網站的背后是成白上千的子系統,用戶的一次操作可能涉及到幾十個子系統的協作,如果每個子系統都需要用
戶驗證,不僅用戶會瘋掉,各系統也會為這種重復授權搞瘋。

需要解決的兩點:解決如何產生和存儲信任,系統如何驗證這個信任的有效性(1.存儲信任 2.驗證信任)

解決方案:
1.以Cookie作為憑證媒介,通過JSONP實現
用戶登錄父應用系統后,跟Session匹配的Cookie會存到客戶端中,當用戶登錄子應用系統時,授權應用訪問父應用提供的JSONP接口,並在請求中
帶上父應用系統域名下Cookie,父應用接收到請求,驗證用戶的登錄狀態,
如果登錄中則返回加密信息,子應用通過解析返回加密信息驗證,驗證通過則登錄成功子應用系統
如果不是登錄中則返回重新登錄頁面
優點:簡單方便
缺點:信任全部壓在Cookie加密中,如果加密算法泄露了,攻擊者可以在本地建立一個實現了登錄接口的假冒父應用,通過綁定host來把子應用發起的請求指向本地假冒的父應用
並作出回應通過驗證,登錄特定用戶

2.通過頁面重定向的方式
通過父應用和子應用來回重定向進行通信實現信息安全傳遞。父應用提供一個GET方式登錄接口,用戶通過子應用重定向連接方式訪問這個接口。如果用戶還沒有登錄則返回登錄頁面,
如果用戶登錄了則生成加密的Token並且重定向到子應用提供驗證Token的接口,通過解密校驗后,登錄當前用戶
優點:較Cookie方式安全些
缺點:不方便

3.使用獨立登錄系統
把授權的邏輯與用戶信息的相關邏輯獨立成一個應用(用戶中心),用戶中心不處理業務邏輯,只是處理用戶信息的管理以及授權給第三方應用。第三方應用需要登錄的時候把請求轉發給用戶中心
進行處理,處理完畢后返回憑證,第三方驗證憑證,通過后就登錄用戶

多點登錄的概念:同一賬號可以在不同終端同時登錄,同時收發信息。

多點登錄限制(禁止用戶多點在線):一個端同一個賬號只能登錄一個實例,例如一個賬號在網站端登錄后,后一個人使用這個賬號在網站端登錄,前一個人會被擠下去並會收到通知“你已在別處登錄....”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM