一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Oauth2詳解

 liang1234_ 2020-11-03
1.什么是OAuth2

OAuth(開放授權(quán))是一個開放標(biāo)準(zhǔn),允許用戶授權(quán)第三方移動應(yīng)用訪問他們存儲在另外的服務(wù)提供者上的信息,而不需要將用戶名和密碼提供給第三方移動應(yīng)用或分享他們數(shù)據(jù)的所有內(nèi)容,OAuth2.0是OAuth協(xié)議的延續(xù)版本,但不向后兼容OAuth 1.0即完全廢止了OAuth1.0。

2.應(yīng)用場景

第三方應(yīng)用授權(quán)登錄:在APP或者網(wǎng)頁接入一些第三方應(yīng)用時,時長會需要用戶登錄另一個合作平臺,比如QQ,微博,微信的授權(quán)登錄。

image

原生app授權(quán):app登錄請求后臺接口,為了安全認(rèn)證,所有請求都帶token信息,如果登錄驗證、請求后臺數(shù)據(jù)。

前后端分離單頁面應(yīng)用(spa):前后端分離框架,前端請求后臺數(shù)據(jù),需要進(jìn)行oauth2安全認(rèn)證,比如使用vue、react后者h(yuǎn)5開發(fā)的app。

3名詞說明

(1) Third-party application:第三方應(yīng)用程序,本文中又稱"客戶端"(client),比如打開知乎,使用第三方登錄,選擇qq登錄,這時候知乎就是客戶端。
(2)HTTP service:HTTP服務(wù)提供商,本文中簡稱"服務(wù)提供商",即上例的qq。
(3)Resource Owner:資源所有者,本文中又稱"用戶"(user),即登錄用戶。
(4)User Agent:用戶代理,本文中就是指瀏覽器。
(5)Authorization server:認(rèn)證服務(wù)器,即服務(wù)提供商專門用來處理認(rèn)證的服務(wù)器。
(6)Resource server:資源服務(wù)器,即服務(wù)提供商存放用戶生成的資源的服務(wù)器。它與認(rèn)證服務(wù)器,可以是同一臺服務(wù)器,也可以是不同的服務(wù)器。

4運行流程

OAuth 2.0的運行流程如下圖,摘自RFC 6749。

OAuth運行流程

(A)用戶打開客戶端以后,客戶端要求用戶給予授權(quán)。
(B)用戶同意給予客戶端授權(quán)。
(C)客戶端使用上一步獲得的授權(quán),向認(rèn)證服務(wù)器申請令牌。
(D)認(rèn)證服務(wù)器對客戶端進(jìn)行認(rèn)證以后,確認(rèn)無誤,同意發(fā)放令牌。
(E)客戶端使用令牌,向資源服務(wù)器申請獲取資源。
(F)資源服務(wù)器確認(rèn)令牌無誤,同意向客戶端開放資
源。

5授權(quán)模式

  • 授權(quán)碼模式(authorization code)
  • 簡化模式(implicit)
  • 密碼模式(resource owner password credentials)
  • 客戶端模式(client credentials)
5.1授權(quán)碼模式

授權(quán)碼模式(authorization code)是功能最完整、流程最嚴(yán)密的授權(quán)模式。

(1)用戶訪問客戶端,后者將前者導(dǎo)向認(rèn)證服務(wù)器,假設(shè)用戶給予授權(quán),認(rèn)證服務(wù)器將用戶導(dǎo)向客戶端事先指定的"重定向URI"(redirection URI),同時附上一個授權(quán)碼。

(2)客戶端收到授權(quán)碼,附上早先的"重定向URI",向認(rèn)證服務(wù)器申請令牌:GET /oauth/token?response_type=code&client_id=test&redirect_uri=重定向頁面鏈接。請求成功返回code授權(quán)碼,一般有效時間是10分鐘。

(3)認(rèn)證服務(wù)器核對了授權(quán)碼和重定向URI,確認(rèn)無誤后,向客戶端發(fā)送訪問令牌(access token)和更新令牌(refresh token)。POST /oauth/token?response_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=重定向頁面鏈接。

5.2簡化模式

簡化模式(implicit grant type)不通過第三方應(yīng)用程序的服務(wù)器,直接在瀏覽器中向認(rèn)證服務(wù)器申請令牌,跳過了"授權(quán)碼"這個步驟,因此得名。所有步驟在瀏覽器中完成,令牌對訪問者是可見的,且客戶端不需要認(rèn)證。

image.png

流程步驟:

(A)客戶端將用戶導(dǎo)向認(rèn)證服務(wù)器。
(B)用戶決定是否給于客戶端授權(quán)。
(C)假設(shè)用戶給予授權(quán),認(rèn)證服務(wù)器將用戶導(dǎo)向客戶端指定的"重定向URI",并在URI的Hash部分包含了訪問令牌。
(D)瀏覽器向資源服務(wù)器發(fā)出請求,其中不包括上一步收到的Hash值。
(E)資源服務(wù)器返回一個網(wǎng)頁,其中包含的代碼可以獲取Hash值中的令牌。
(F)瀏覽器執(zhí)行上一步獲得的腳本,提取出令牌。
(G)瀏覽器將令牌發(fā)給客戶端。

請求URL:

GET /authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz
     &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1
    Host: server.example.com
5.3用戶名密碼模式

密碼模式(Resource Owner Password Credentials Grant)中,用戶向客戶端提供自己的用戶名和密碼。客戶端使用這些信息,向"服務(wù)商提供商"索要授權(quán)。在這種模式中,用戶必須把自己的密碼給客戶端,但是客戶端不得儲存密碼。這通常用在用戶對客戶端高度信任的情況下。一般不支持refresh token。


image.png

步驟說明:
(A)用戶向客戶端提供用戶名和密碼。
(B)客戶端將用戶名和密碼發(fā)給認(rèn)證服務(wù)器,向后者請求令牌。
(C)認(rèn)證服務(wù)器確認(rèn)無誤后,向客戶端提供訪問令牌。

     POST /token HTTP/1.1
     Host: server.example.com
     Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
     Content-Type: application/x-www-form-urlencoded
 grant_type=password&username=johndoe&password=A3ddj3w

<article class="hentry">

5.4客戶端模式(Client Credentials Grant)

指客戶端以自己的名義,而不是以用戶的名義,向"服務(wù)提供商"進(jìn)行認(rèn)證。嚴(yán)格地說,客戶端模式并不屬于OAuth框架所要解決的問題。在這種模式中,用戶直接向客戶端注冊,客戶端以自己的名義要求"服務(wù)提供商"提供服務(wù),其實不存在授權(quán)問題。

客戶端模式

它的步驟如下:
(A)客戶端向認(rèn)證服務(wù)器進(jìn)行身份認(rèn)證,并要求一個訪問令牌。
(B)認(rèn)證服務(wù)器確認(rèn)無誤后,向客戶端提供訪問令牌。

A步驟中,客戶端發(fā)出的HTTP請求,包含以下參數(shù):

  • granttype:表示授權(quán)類型,此處的值固定為"clientcredentials",必選項。
  • scope:表示權(quán)限范圍,可選項。

     POST /token HTTP/1.1
     Host: server.example.com
     Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
     Content-Type: application/x-www-form-urlencoded

     grant_type=client_credentials

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    在线视频免费看你懂的| 日本人妻熟女一区二区三区| 98精品永久免费视频| 99少妇偷拍视频在线| 亚洲国产综合久久天堂| 亚洲精品日韩欧美精品| 色哟哟哟在线观看视频| 狠色婷婷久久一区二区三区| 在线观看视频日韩成人| 99在线视频精品免费播放| 青青操视频在线观看国产| 日韩中文字幕免费在线视频| 色无极东京热男人的天堂| 字幕日本欧美一区二区| 日韩精品毛片视频免费看| 国产在线日韩精品欧美| 夫妻性生活一级黄色录像| 日本乱论一区二区三区| 亚洲精品成人综合色在线| 国产丝袜美女诱惑一区二区| 日韩精品中文在线观看| 国产又黄又猛又粗又爽的片| 丝袜av一区二区三区四区五区| 中国黄色色片色哟哟哟哟哟哟| 亚洲免费黄色高清在线观看| 欧美黑人暴力猛交精品| 五月激情综合在线视频| 伊人久久五月天综合网| 国产三级视频不卡在线观看| 欧美日韩国产精品第五页| 国产传媒精品视频一区| 中文字幕亚洲在线一区| 风韵人妻丰满熟妇老熟女av| 欧美丰满人妻少妇精品| 欧美日韩一级aa大片| 欧美日韩国产精品自在自线| 国产级别精品一区二区视频 | 国内精品一区二区欧美| 亚洲精品欧美精品一区三区| 五月天六月激情联盟网| 偷拍偷窥女厕一区二区视频|