<em id="bnjfz"><form id="bnjfz"></form></em>

                  千鋒教育-做有情懷、有良心、有品質的職業教育機構

                  當前位置:首頁  >  關于學院  >  技術干貨  >  正文

                  你用過單點登錄嗎?是如何實現的?

                  來源:千鋒教育
                  作者:qyf
                  關鍵詞: 登錄 應用
                  2022-09-02
                  分享

                  你用過單點登錄嗎

                    1. 單點登錄概念

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

                    2. 單點登錄的要點

                   ?、? 存儲信任;

                   ?、? 驗證信任;

                    3. 實現單點登錄的三種方式

                   ?、? 以cookie作為憑證

                    最簡單的單點登錄實現方式,是使用cookie作為媒介,存放用戶憑證。

                    用戶登錄父應用之后,應用返回一個加密的cookie,當用戶訪問子應用的時候,攜帶上這個cookie,授權應用解密cookie進行校驗,校驗通過則登錄當前用戶。

                    缺點:

                    ●cookie不安全;

                    ●通過加密可以保證安全性,但如果對方掌握了解密算法就完蛋了;

                    ●不能跨域實現免登。

                   ?、? 通過JSONP實現

                    對于跨域問題,可以使用JSONP實現。用戶在父應用中登錄后,跟session匹配的cookie會存到客戶端中,當用戶需要登錄子應用的時候,授權應用訪問父應用提供的JSONP接口,并在請求中帶上父應用域名下的cookie,父應用接收到請求,驗證用戶的登錄狀態,返回加密的信息,子應用通過解析返回來的加密信息來驗證用戶,如果通過驗證則登錄用戶。

                    缺點:

                    ●這種方法雖然能解決跨域問題,但是治標不治本,沒有解決cookie安全性的問題。

                   ?、? 通過頁面重定向的方式

                    最后一種介紹的方式,是通過父應用和子應用來回重定向進行通信,實現信息的安全傳遞。

                    父應用提供一個GET方式的登錄接口A(此時的父應用接口固定,攻擊者無法去偽造),用戶通過子應用重定向連接的方式訪問這個接口,如果用戶還沒有登錄,則返回一個登錄頁面,用戶輸入賬號密碼進行登錄,如果用戶已經登錄了,則生成加密的token,并且重定向到子應用提供的驗證token的接口B(此時的子應用接口固定,攻擊者無法去偽造),通過解密和校驗之后,子應用登錄當前用戶。

                    缺點:

                    ●這種方式較前面的兩種方式,是解決了安全性和跨域的問題,但是并沒有前面兩種方式簡單,安全與方便,本來就是矛盾的。

                    4. 使用獨立登錄系統

                    一般來說,大型應用會把授權的邏輯和用戶信息的相關邏輯獨立成一個應用,稱為用戶中心。用戶中心不處理業務邏輯,只是處理用戶信息的管理以及授權給第三方應用。第三方應用需要登錄的時候,則把用戶的登錄請求轉發給用戶中心進行處理,用戶處理完畢后返回憑證,第三方應用驗證憑證,通過后就登錄用戶。

                    5. sso(單點登錄)與OAuth2.0(授權)的區別?

                   ?、? sso(單點登錄)

                    通常處理的是一個公司的不同應用間的訪問登錄問題,如企業應用有很多子系統,只需登錄一個系統,就可以實現不同子系統間的跳轉,而避免了登錄操作;

                    通過cookie、jsonp、重定向來實現;

                   ?、? OAuth2.0(授權)

                    解決的是服務提供方(如微信)給第三方應用授權的問題,簡稱微信登錄;

                    是一種具體的協議,只是為用戶資源的授權提供了一個安全的、開放的而又簡易的標準,OAuth2.0(授權)為客戶開發者開發web應用,桌面應用程序,移動應用及客廳設備提供特定的授權流程。

                    更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經驗,課程大綱更科學更專業,有針對零基礎的就業班,有針對想提升技術的好程序員班,高品質課程助力你實現java程序員夢想。

                  聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

                  下一篇

                  相關推薦

                1. 你用過單點登錄嗎?是如何實現的? 父應用提供一個GET方式的登錄接口A(此時的父應用接口固定,攻擊者無法去偽造),用戶通過子應用重定向連接的方式訪問這個接口,如果用戶還沒有登錄,則返回一個登錄頁面,用戶輸入賬號密碼進行登錄,如果用戶已經登錄了,則生成加密的token,并且重定向到子應用提供的驗證token...
                2. 如何進行需求分析 評估不實現的影響;評估需求背后的動機;給用戶帶來驚喜感以及塑造口碑也是需求。
                3. 開發拒絕你的需求怎么辦 詳細說明數據價值,拿出數據進行佐證;拆分多個方案或砍掉部分功能;借助leader的力量進行協調
                4. 你了解哪些加密算法? 循環冗余校驗(Cyclic Redundancy Check, CRC)是一種根據網絡數據包或電腦文件等數據產生簡短固定位數校驗碼的一種散列函數,主要用來檢測或校驗數據傳輸或者保存后可能出現的錯誤。
                5. 項目中是如何實現權限驗證的?權限驗證需要幾張表? 互斥角色 :同一用戶只能分配到一組互斥角色集合中至多一個角色,支持責任分離的原則。對應的可以分配訪問權限給角色,僅當該角色已經擁有另一種訪問權限。運行時互斥 :例如,允許一個用戶具有兩個角色的成員資格,但在運行中不可同時激活這兩個角色。
                6. 如何實現跨域?說一下JSONP實現原理? 當一個資源從與該資源本身所在的服務器不同的域、協議或端口請求一個資源時,資源會發起一個跨域 HTTP 請求。反向代理的原理很簡單,即所有客戶端的請求都必須先經過nginx的處理,nginx作為代理服務器再講請求轉發給node或者java服務,這樣就規避了同源策略。
                7. 国内免费视频青女在线

                  <em id="bnjfz"><form id="bnjfz"></form></em>