摘要:概念英文全稱,單點登錄。登錄如上述流程圖一致。系統和系統使用認證登錄。退出上圖,表示的是從某一個系統退出的流程圖。與的關系如果企業有多個管理系統,現由原來的每個系統都有一個登錄,調整為統一登錄認證。
概念
SSO 英文全稱 Single Sign On,單點登錄。
在多個應用系統中,只需要登錄一次,就可以訪問其他相互信任的應用系統。
比如:淘寶網(www.taobao.com),天貓網(www.tmall.com),聚劃算(ju.taobao.com),飛豬網(www.fliggy.com)等,這些都是阿里巴巴集團的網站。在這些網站中,我們在其中一個網站登錄了,再訪問其他的網站時,就無需再進行登錄,這就是 SSO 的主要用途。
好處 用戶角度用戶能夠做到一次登錄多次使用,無需記錄多套用戶名和密碼,省心。
系統管理員角度管理員只需維護好一個統一的賬號中心就可以了,方便。
新系統開發角度新系統開發時只需直接對接統一的賬號中心即可,簡化開發流程,省時。
技術實現 流程圖 流程介紹如果沒這個介紹,看上圖肯定是懵懵的。
系統A和系統B都是前后端分離的,比如前端框架用的 React / Vue / Angular,都是通過 NPM 編譯后獨立部署的,前后端完全通過HTTP接口的方式進行交互,也有可能前后端項目的域名都不一樣。
SSO認證中心不是前后端分離的,就是前端代碼和后端代碼部署在一個項目中。
為什么用這兩種情況呢?
其實就是為了,在流程圖上出現這兩種情況,這樣的清楚了,后期改成任何一種就都清楚了。
試想一下:
三個系統都是前后端分離的情況,流程圖應該怎么調整?
三個系統都不是前后端分離的情況,流程圖應該怎么調整?
對外接口系統A和系統B:用戶退出接口。
SSO 認證中心:用戶退出接口和token驗證接口。
登錄如上述流程圖一致。
系統A和系統B:使用token認證登錄。
SSO 認證中心:使用會話認證登錄。
前后端分離項目,登錄使用token進行解決,前端每次請求接口時都必須傳遞token參數。
退出上圖,表示的是從某一個系統退出的流程圖。
退出,還可以從SSO認證中心退出,然后調取各個系統的用戶退出接口。
當用戶再進行操作的時候,就會跳轉到SSO的登錄界面。
Token 生成方式創建全局會話可以使用session,將session存儲到redis中。
令牌的生成可以使用JWT。
PHP JWT參考地址:https://github.com/lcobucci/jwt
當然還可以自定義token的生成方式。
小結講解了什么是SSO,以及SSO的用途與好處,同時根據流程圖一步步進行梳理,基本上就可以實現了。
期間遇到任何問題,都可以關注公眾號和我進行交流。
擴展 SSO與OAuth的區別談到SSO很多人就想到OAuth,也有談到OAuth想到SSO的,在這里我簡單的說一下區別。
通俗的解釋,SSO是處理一個公司內的不同應用系統之間的登錄問題,比如阿里巴巴旗下有很多應用系統,我們只需要登錄一個系統就可以實現不同系統之間的跳轉。
OAuth是不同公司遵循的一種授權方案,也是一種授權協議,通常都是由大公司提供,比如騰訊,微博。我們常用的QQ登錄,微博登錄等,使用OAuth的好處是可以使用其他第三方賬號進行登錄系統,減少了因用戶懶,不愿注冊而導致用戶流失的風險。
現在一些支付業務也用OAuth,比如微信支付,支付寶支付。
還有一些開放平臺也用OAuth,比如百度開放平臺,騰訊開放平臺。
SSO與RBAC的關系如果企業有多個管理系統,現由原來的每個系統都有一個登錄,調整為統一登錄認證。
那么每個管理系統都有權限控制,吸取統一登錄認證的經驗,我們也可以做一套統一的RBAC權限認證。
推薦閱讀系統的講解 - PHP WEB 安全防御
系統的講解 - PHP 緩存技術
系統的講解 - PHP 接口簽名驗證
系統的講解 - PHP 浮點數高精度運算
本文歡迎轉發,轉發請注明作者和出處,謝謝!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31431.html
摘要:本章主要講解的是單點登錄系統的概述部分。單點登錄單點登錄顧名思義就是從一個系統進行登錄操作,就可以訪問其他附近的系統。單點登錄避免了用戶重復的登錄過程,在整個核心業務中起到了一個基層的輔助作用。 本項目主要講解的是單點登錄系統的原理及其實現。 本章主要講解的是單點登錄系統的概述部分。 單點登錄 單點登錄顧名思義就是從一個系統進行登錄操作,就可以訪問其他附近的系統。單點登錄避免了用戶重...
摘要:本章主要講解的是同域下單點登錄分析。若登錄失敗,則返回原來的登錄頁面,并攜帶原來的,將原始的作為表單的隱藏屬性。若沒有,則證明該可能已經失效或是偽造的,則向客戶端返回空字符串,否則返回查詢到的信息。 本項目主要講解的是單點登錄系統的原理及其實現。 相關代碼github鏈接。 本章主要講解的是同域下單點登錄分析。 同域下SSO分析與設計 showImg(https://img-blog...
摘要:此時,用戶想要訪問系統受限的資源比如說訂單功能,訂單功能需要登錄后才能訪問,系統發現用戶并沒有登錄,于是重定向到認證中心,并將自己的地址作為參數。前言 只有光頭才能變強。 文本已收錄至我的GitHub倉庫,歡迎Star:github.com/ZhongFuChen… 在我實習之前我就已經在看單點登錄的是什么了,但是實習的時候一直在忙其他的事,所以有幾個網站就一直躺在我的收藏夾里邊: ...
摘要:此時,用戶想要訪問系統受限的資源比如說訂單功能,訂單功能需要登錄后才能訪問,系統發現用戶并沒有登錄,于是重定向到認證中心,并將自己的地址作為參數。前言 只有光頭才能變強。 文本已收錄至我的GitHub倉庫,歡迎Star:github.com/ZhongFuChen… 在我實習之前我就已經在看單點登錄的是什么了,但是實習的時候一直在忙其他的事,所以有幾個網站就一直躺在我的收藏夾里邊: ...
摘要:此時,用戶想要訪問系統受限的資源比如說訂單功能,訂單功能需要登錄后才能訪問,系統發現用戶并沒有登錄,于是重定向到認證中心,并將自己的地址作為參數。前言 只有光頭才能變強。 文本已收錄至我的GitHub倉庫,歡迎Star:github.com/ZhongFuChen… 在我實習之前我就已經在看單點登錄的是什么了,但是實習的時候一直在忙其他的事,所以有幾個網站就一直躺在我的收藏夾里邊: ...
閱讀 2311·2021-09-26 10:21
閱讀 2785·2021-09-08 09:36
閱讀 3064·2019-08-30 15:56
閱讀 954·2019-08-30 12:57
閱讀 916·2019-08-26 10:39
閱讀 3554·2019-08-23 18:11
閱讀 3076·2019-08-23 17:12
閱讀 1069·2019-08-23 12:18