日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

oauth2基本概念

發(fā)布時(shí)間:2023/12/10 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oauth2基本概念 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.什么是oauth2

  • OAuth2.0介紹 OAuth(Open Authorization)是一個(gè)關(guān)于授權(quán)(authorization)的開放網(wǎng)絡(luò)標(biāo)準(zhǔn),允許用戶授權(quán)第三方 應(yīng)用訪問他們存儲(chǔ)在另外的服務(wù)提供者上的信息,而不需要將用戶名和密碼提供給第三方移動(dòng)應(yīng)用或分享他 們數(shù)據(jù)的所有內(nèi)容。OAuth在全世界得到廣泛應(yīng)用,目前的版本是2.0版。
  • OAuth協(xié)議:https://tools.ietf.org/html/rfc6749 協(xié)議特點(diǎn):簡單:不管是OAuth服務(wù)提供者還是應(yīng)用開發(fā)者,都很易于理解與使用; 安全:沒有涉及到用戶密鑰等信息,更安全更靈活; 開放:任何服務(wù)提供商都可以實(shí)現(xiàn)OAuth,任何軟件開發(fā)商都可以使用OAuth;
  • 2.為什么用oauth2

    業(yè)務(wù)系統(tǒng) 需要實(shí)現(xiàn)幾種登錄形式

  • 原生app授權(quán) app登錄請求后臺(tái)接口,為了安全認(rèn)證,所有請求都帶token信息,如果登錄驗(yàn)證、 請求后臺(tái)數(shù)據(jù)。
  • 前后端分離單頁面應(yīng)用:前后端分離框架,前端請求后臺(tái)數(shù)據(jù),需要進(jìn)行oauth2安全認(rèn)證,比如 使用vue、react后者h(yuǎn)5開發(fā)的app
  • 第三方應(yīng)用授權(quán)登錄,比如QQ,微博,微信的授權(quán)登錄。
  • 3.怎么用oauth2

    4.oauth中的角色

    OAuth 定義了四個(gè)角色:

    4.1 Resource owner 資源擁有者(用戶)

    能夠授予對受保護(hù)資源的訪問權(quán)限的實(shí)體。當(dāng)資源所有者是一個(gè)人時(shí),它被稱為最終用戶

    Resource Server 資源服務(wù)器

    托管受保護(hù)資源的服務(wù)器,能夠使用訪問令牌接受和響應(yīng)受保護(hù)資源請求

    Client 客戶端

    代表資源所有者并經(jīng)其授權(quán)發(fā)出受保護(hù)資源請求的應(yīng)用程序。“客戶”一詞確實(shí) 不暗示任何特定的實(shí)現(xiàn)特征(例如, 應(yīng)用程序是否在服務(wù)器、桌面或其他 設(shè)備上執(zhí)行)。

    Authorization server 授權(quán)服務(wù)器

    服務(wù)器在成功 驗(yàn)證資源所有者并獲得授權(quán)后向客戶端頒發(fā)訪問令牌。授權(quán)服務(wù)器和資源服務(wù)器之間的交互超出了本規(guī)范的范圍。授權(quán)服務(wù)器 可以是與資源服務(wù)器相同的服務(wù)器,也可以是單獨(dú)的實(shí)體。 單個(gè)授權(quán)服務(wù)器可以發(fā)布多個(gè)資源服務(wù)器接受的訪問令牌。

    5.認(rèn)證流程參考

    6.Oauth2 的四種認(rèn)證模式的流程

    6.1 Authorization Code (授權(quán)碼模式)

    應(yīng)用場景

    這種方式是最常用的流程,安全性也最高,它適用于那些有后端的 Web 應(yīng)用。授權(quán)碼通過前端傳送,令牌則是儲(chǔ)存在后端,而且所有與資源服務(wù)器的通信都在后端完成。這樣的前后端分離,可以避免令牌泄漏

    流程


    1:用戶訪問頁面
    2:訪問的頁面將請求重定向到認(rèn)證服務(wù)器
    3:認(rèn)證服務(wù)器向用戶展示授權(quán)頁面,等待用戶授權(quán)
    4:用戶授權(quán),認(rèn)證服務(wù)器生成一個(gè)code和帶上client_id發(fā)送給應(yīng)用服務(wù)器
    然后,應(yīng)用服務(wù)器拿到code,并用client_id去后臺(tái)查詢對應(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:驗(yàn)證token,訪問真正的資源頁面

    6.2 Resource Owner Password Credentials Grant(密碼模式)

    應(yīng)用場景

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

    流程


    1:用戶訪問用頁面時(shí),輸入第三方認(rèn)證所需要的信息(QQ/微信賬號(hào)密碼)
    2:應(yīng)用頁面那種這個(gè)信息去認(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)用,沒有后端。這時(shí)就不能用上面的方式了,必須將令牌儲(chǔ)存在前端。RFC 6749 就規(guī)定了第二種方式,允許直接向前端頒發(fā)令牌。這種方式?jīng)]有授權(quán)碼這個(gè)中間步驟,所以稱為(授權(quán)碼)“隱藏式”(implicit)

    流程

    1:用戶訪問頁面時(shí),重定向到認(rèn)證服務(wù)器。
    2:認(rèn)證服務(wù)器給用戶一個(gè)認(rèn)證頁面,等待用戶授權(quán)。
    3:用戶授權(quán),認(rèn)證服務(wù)器想應(yīng)用頁面返回Token
    4:驗(yàn)證Token,訪問真正的資源頁面

    6.4 Client Credentials Grant (客戶端憑證模式)

    應(yīng)用場景

    適用于沒有前端的命令行應(yīng)用,即在命令行下請求令牌

    流程


    1:用戶訪問應(yīng)用客戶端
    2:通過客戶端定義的驗(yàn)證方法,拿到token,無需授權(quán)
    3:訪問資源服務(wù)器A
    4:拿到一次token就可以暢通無阻的訪問其他的資源頁面
    如果你高度信任某個(gè)應(yīng)用,RFC 6749 也允許用戶把用戶名和密碼,直接告訴該應(yīng)用。該應(yīng)用就使用你的密碼,申請令牌,這種方式稱為"密碼式"(password)

    7 刷新token原理

    總結(jié)

    以上是生活随笔為你收集整理的oauth2基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。