oauth2基本概念
1.什么是oauth2
2.為什么用oauth2
業(yè)務(wù)系統(tǒng) 需要實現(xiàn)幾種登錄形式
3.怎么用oauth2
4.oauth中的角色
OAuth 定義了四個角色:
4.1 Resource owner 資源擁有者(用戶)
能夠授予對受保護(hù)資源的訪問權(quán)限的實體。當(dāng)資源所有者是一個人時,它被稱為最終用戶
Resource Server 資源服務(wù)器
托管受保護(hù)資源的服務(wù)器,能夠使用訪問令牌接受和響應(yīng)受保護(hù)資源請求
Client 客戶端
代表資源所有者并經(jīng)其授權(quán)發(fā)出受保護(hù)資源請求的應(yīng)用程序。“客戶”一詞確實 不暗示任何特定的實現(xiàn)特征(例如, 應(yīng)用程序是否在服務(wù)器、桌面或其他 設(shè)備上執(zhí)行)。
Authorization server 授權(quán)服務(wù)器
服務(wù)器在成功 驗證資源所有者并獲得授權(quán)后向客戶端頒發(fā)訪問令牌。授權(quán)服務(wù)器和資源服務(wù)器之間的交互超出了本規(guī)范的范圍。授權(quán)服務(wù)器 可以是與資源服務(wù)器相同的服務(wù)器,也可以是單獨的實體。 單個授權(quán)服務(wù)器可以發(fā)布多個資源服務(wù)器接受的訪問令牌。
5.認(rèn)證流程參考
6.Oauth2 的四種認(rèn)證模式的流程
6.1 Authorization Code (授權(quán)碼模式)
應(yīng)用場景
這種方式是最常用的流程,安全性也最高,它適用于那些有后端的 Web 應(yīng)用。授權(quán)碼通過前端傳送,令牌則是儲存在后端,而且所有與資源服務(wù)器的通信都在后端完成。這樣的前后端分離,可以避免令牌泄漏
流程
1:用戶訪問頁面
2:訪問的頁面將請求重定向到認(rèn)證服務(wù)器
3:認(rèn)證服務(wù)器向用戶展示授權(quán)頁面,等待用戶授權(quán)
4:用戶授權(quán),認(rèn)證服務(wù)器生成一個code和帶上client_id發(fā)送給應(yīng)用服務(wù)器
然后,應(yīng)用服務(wù)器拿到code,并用client_id去后臺查詢對應(yīng)的client_secret
5:將code、client_id、client_secret傳給認(rèn)證服務(wù)器換取access_token和
refresh_token
6:將access_token和refresh_token傳給應(yīng)用服務(wù)器
7:驗證token,訪問真正的資源頁面
6.2 Resource Owner Password Credentials Grant(密碼模式)
應(yīng)用場景
如果你高度信任某個應(yīng)用,RFC 6749 也允許用戶把用戶名和密碼,直接告訴該應(yīng)用。該應(yīng)用就使用你的密碼,申請令牌,這種方式稱為"密碼式"(password)
流程
1:用戶訪問用頁面時,輸入第三方認(rèn)證所需要的信息(QQ/微信賬號密碼)
2:應(yīng)用頁面那種這個信息去認(rèn)證服務(wù)器授權(quán)
3:認(rèn)證服務(wù)器授權(quán)通過,拿到token,訪問真正的資源頁面
6.3 Implicit Grant (隱式授權(quán)模式)
應(yīng)用場景
有些 Web 應(yīng)用是純前端應(yīng)用,沒有后端。這時就不能用上面的方式了,必須將令牌儲存在前端。RFC 6749 就規(guī)定了第二種方式,允許直接向前端頒發(fā)令牌。這種方式?jīng)]有授權(quán)碼這個中間步驟,所以稱為(授權(quán)碼)“隱藏式”(implicit)
流程
1:用戶訪問頁面時,重定向到認(rèn)證服務(wù)器。
2:認(rèn)證服務(wù)器給用戶一個認(rèn)證頁面,等待用戶授權(quán)。
3:用戶授權(quán),認(rèn)證服務(wù)器想應(yīng)用頁面返回Token
4:驗證Token,訪問真正的資源頁面
6.4 Client Credentials Grant (客戶端憑證模式)
應(yīng)用場景
適用于沒有前端的命令行應(yīng)用,即在命令行下請求令牌
流程
1:用戶訪問應(yīng)用客戶端
2:通過客戶端定義的驗證方法,拿到token,無需授權(quán)
3:訪問資源服務(wù)器A
4:拿到一次token就可以暢通無阻的訪問其他的資源頁面
如果你高度信任某個應(yīng)用,RFC 6749 也允許用戶把用戶名和密碼,直接告訴該應(yīng)用。該應(yīng)用就使用你的密碼,申請令牌,這種方式稱為"密碼式"(password)
7 刷新token原理
總結(jié)
以上是生活随笔為你收集整理的oauth2基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web安全CSRF攻击与防御
- 下一篇: apache mysql python