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