欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SSO單點(diǎn)登錄和OAuth2.0 的區(qū)別

admin
2023年4月15日 10:26 本文熱度 795

一、概述


SSO是Single Sign On的縮寫,OAuth是Open Authority的縮寫,這兩者都是使用令牌的方式來代替用戶密碼訪問應(yīng)用。流程上來說他們非常相似,但概念上又十分不同。SSO大家應(yīng)該比較熟悉,它將登錄認(rèn)證和業(yè)務(wù)系統(tǒng)分離,使用獨(dú)立的登錄中心,實(shí)現(xiàn)了在登錄中心登錄后,所有相關(guān)的業(yè)務(wù)系統(tǒng)都能免登錄訪問資源。


OAuth2.0原理可能比較陌生,但平時(shí)用的卻很多,比如訪問某網(wǎng)站想留言又不想注冊時(shí)使用了微信授權(quán)。以上兩者,你在業(yè)務(wù)系統(tǒng)中都沒有賬號和密碼,賬號密碼是存放在登錄中心或微信服務(wù)器中的,這就是所謂的使用令牌代替賬號密碼訪問應(yīng)用。


二、SSO


兩者有很多相似之處,下面我們來解釋一下這個(gè)過程。先來講解SSO,通過SSO對比OAuth2.0,才比較好理解OAuth2.0的原理。SSO的實(shí)現(xiàn)有很多框架,比如CAS框架,以下是CAS框架的官方流程圖。特別注意:SSO是一種思想,而CAS只是實(shí)現(xiàn)這種思想的一種框架而已


上面的流程大概為:

  • 用戶輸入網(wǎng)址進(jìn)入業(yè)務(wù)系統(tǒng)Protected App,系統(tǒng)發(fā)現(xiàn)用戶未登錄,將用戶重定向到單點(diǎn)登錄系統(tǒng)CAS Server,并帶上自身地址service參數(shù)
  • 用戶瀏覽器重定向到單點(diǎn)登錄系統(tǒng),系統(tǒng)檢查該用戶是否登錄,這是SSO(這里是CAS)系統(tǒng)的第一個(gè)接口,該接口如果用戶未登錄,則將用戶重定向到登錄界面,如果已登錄,則設(shè)置全局session,并重定向到業(yè)務(wù)系統(tǒng)
  • 用戶填寫密碼后提交登錄,注意此時(shí)的登錄界面是SSO系統(tǒng)提供的,只有SSO系統(tǒng)保存了用戶的密碼,
  • SSO系統(tǒng)驗(yàn)證密碼是否正確,若正確則重定向到業(yè)務(wù)系統(tǒng),并帶上SSO系統(tǒng)的簽發(fā)的ticket
  • 瀏覽器重定向到業(yè)務(wù)系統(tǒng)的登錄接口,這個(gè)登錄接口是不需要密碼的,而是帶上SSO的ticket,業(yè)務(wù)系統(tǒng)拿著ticket請求SSO系統(tǒng),獲取用戶信息。并設(shè)置局部session,表示登錄成功返回給瀏覽器sessionId(tomcat中叫JSESSIONID)
  • 之后所有的交互用sessionId與業(yè)務(wù)系統(tǒng)交互即可

最常見的例子是,我們打開淘寶APP,首頁就會(huì)有天貓、聚劃算等服務(wù)的鏈接,當(dāng)你點(diǎn)擊以后就直接跳過去了,并沒有讓你再登錄一次


三、OAuth2.0


OAuth2.0有多種模式,這里講的是OAuth2.0授權(quán)碼模式,OAuth2.0的流程跟SSO差不多,在OAuth2中,有授權(quán)服務(wù)器、資源服務(wù)器、客戶端這樣幾個(gè)角色,當(dāng)我們用它來實(shí)現(xiàn)SSO的時(shí)候是不需要資源服務(wù)器這個(gè)角色的,有授權(quán)服務(wù)器和客戶端就夠了。

授權(quán)服務(wù)器當(dāng)然是用來做認(rèn)證的,客戶端就是各個(gè)應(yīng)用系統(tǒng),我們只需要登錄成功后拿到用戶信息以及用戶所擁有的權(quán)限即可

  • 用戶在某網(wǎng)站上點(diǎn)擊使用微信授權(quán),這里的某網(wǎng)站就類似業(yè)務(wù)系統(tǒng),微信授權(quán)服務(wù)器就類似單點(diǎn)登錄系統(tǒng)
  • 之后微信授權(quán)服務(wù)器返回一個(gè)確認(rèn)授權(quán)頁面,類似登錄界面,這個(gè)頁面當(dāng)然是微信的而不是業(yè)務(wù)系統(tǒng)的
  • 用戶確認(rèn)授權(quán),類似填寫了賬號和密碼,提交后微信鑒權(quán)并返回一個(gè)ticket,并重定向業(yè)務(wù)系統(tǒng)。
  • 業(yè)務(wù)系統(tǒng)帶上ticket訪問微信服務(wù)器,微信服務(wù)器返回正式的token,業(yè)務(wù)系統(tǒng)就可以使用token獲取用戶信息了


簡介一下OAuth2.0的四種模式:

授權(quán)碼(authorization-code)
授權(quán)碼(authorization code)方式,指的是第三方應(yīng)用先申請一個(gè)授權(quán)碼,然后再用該碼獲取令牌。這種方式是最常用的流程,安全性也最高,它適用于那些有后端的 Web 應(yīng)用。授權(quán)碼通過前端傳送,令牌則是儲(chǔ)存在后端,而且所有與資源服務(wù)器的通信都在后端完成。這樣的前后端分離,可以避免令牌泄漏。
隱藏式(implicit)

有些 Web 應(yīng)用是純前端應(yīng)用,沒有后端。這時(shí)就不能用上面的方式了,必須將令牌儲(chǔ)存在前端。RFC 6749 就規(guī)定了第二種方式,允許直接向前端頒發(fā)令牌。這種方式?jīng)]有授權(quán)碼這個(gè)中間步驟,所以稱為(授權(quán)碼)“隱藏式”(implicit)

密碼式(password)

如果你高度信任某個(gè)應(yīng)用,RFC 6749 也允許用戶把用戶名和密碼,直接告訴該應(yīng)用。該應(yīng)用就使用你的密碼,申請令牌,這種方式稱為"密碼式"(password)。

客戶端憑證(client credentials)

最后一種方式是憑證式(client credentials),適用于沒有前端的命令行應(yīng)用,即在命令行下請求令牌。

簡單流程


四、說一下幾個(gè)名詞的區(qū)別


首先,SSO 是一種思想,或者說是一種解決方案,是抽象的,我們要做的就是按照它的這種思想去實(shí)現(xiàn)它


其次,OAuth2 是用來允許用戶授權(quán)第三方應(yīng)用訪問他在另一個(gè)服務(wù)器上的資源的一種協(xié)議,它不是用來做單點(diǎn)登錄的,但我們可以利用它來實(shí)現(xiàn)單點(diǎn)登錄。在本例實(shí)現(xiàn)SSO的過程中,受保護(hù)的資源就是用戶的信息(包括,用戶的基本信息,以及用戶所具有的權(quán)限),而我們想要訪問這這一資源就需要用戶登錄并授權(quán),OAuth2服務(wù)端負(fù)責(zé)令牌的發(fā)放等操作,這令牌的生成我們采用JWT,也就是說JWT是用來承載用戶的Access_Token的


最后,Spring Security、Shiro 是用于安全訪問的,用來做訪問權(quán)限控制,都是一個(gè)用Java寫的框架。



該文章在 2023/4/15 10:26:58 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved