老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

OAuth2.0介紹-創新互聯

概述

OAuth 2.0 授權框架能夠是第三方應用獲取應用被保護的服務資源,它是一種授權互聯網標準,由IETF(Internet Engineering Task Force)管理發布。
本文主要參考材料為 RFC 6749

成都創新互聯專注于同江企業網站建設,成都響應式網站建設,購物商城網站建設。同江網站建設公司,為同江等地區提供建站服務。全流程按需規劃網站,專業設計,全程項目跟蹤,成都創新互聯專業和態度為您提供的服務

初步理解

接下來以一個生活中的例子來簡單解釋OAuth3的應用場景。
我家所在的小區門禁系統升級,用戶可以下載物業的手機APP,注冊用戶并通過物業審核之后,就可以使用APP中的“藍牙開門”功能開啟大門。
OAuth2.0介紹

有一次,朋友給我打電話說要到我家拜訪,通過訪客邀請功能填寫基本的信息,然后發送一個微信小程序鏈接給朋友
OAuth2.0介紹

朋友點開小程序,點擊一鍵開門就可以進入小區,當天有效并且限制使用8次
OAuth2.0介紹
整個過程就相當于一次授權:
小區可以理解成被保護的資源,我本人擁有APP的用戶和密碼,登陸后可以使用一鍵開門進入小區。
朋友打電話給我申請授權,我通過APP發放一個憑證(微信小程序),朋友可以在憑證有效期內進入小區。
授權機制可以方便的允許第三方(朋友)訪問被保護的資源(小區),同時不需要提供用戶密碼。

OAuth3.0標準

OAuth3.0中的角色

  • resource owner: 資源擁有者,可以對資源進行訪問授權,通常是指應用的終端用戶
  • resource server:資源服務器,包含被保護的資源,可以接受攜帶訪問憑證的請求
  • client:客戶端,即第三方應用,會代表resource owner請求訪問resource server的資源
  • authorization server:認證服務器,為客戶端頒發訪問憑證
  • user-agent:用戶代理,通常就是指Web瀏覽器

OAuth3.0的流程

OAuth2.0介紹
(A) 客戶端(Client)向資源擁有者(Resource Owner)申請授權,資源擁有者(Resource Owner)可以直接授權,但最好是通過Autherization進行授權
(B)客戶端(Client)獲得授權的允許憑據(Authorization Grant),在OAuth3.0中該憑據的獲取有四種類型,授權碼、隱藏式、用戶密碼和客戶端憑證
(C)客戶端(Client)使用授權憑據向授權服務器(Authorization Server)申請訪問憑證(Access Token)
(D)認證服務器(Authorization Server)驗證申請憑據(Authorization Grant),驗證通過后頒發訪問憑證(Access Token)
(E)客戶端(Client)使用訪問憑證(Access Token)訪問資源服務器(Resource Server)
(F)資源服務器(Resource Server)驗證訪問憑證(Access Token),驗證通過后對客戶端(Client)請求進行處理并返回結果

刷新憑證(Refresh Token)

刷新憑證(Refresh Token)是由認證服務器(Authorization Server)頒發給客戶端(Client),用于在當前憑證失效或者過期時,重新獲取一個新的訪問憑證(Access Token)。但頒發刷新憑證(Refresh Token)對于認證服務器(Authorization Server)是可選擇的功能,如果支持,刷新憑證(Refresh Token)會與訪問憑證(Access Token)一同頒發
OAuth2.0介紹
(A)客戶端(Client)使用授權憑據(Authorization Grant)請求訪問憑證(Access Tonken)
(B)認證服務器(Authorization Server)驗證憑據通過后,頒發訪問憑證(Access Token)和刷新憑證(Refresh Token)
(C)客戶端(Client)使用訪問憑證(Access Token)訪問資源服務器(Resource Server)
(D)資源服務器(Resource Server)驗證訪問憑證(Access Token),驗證通過對請求進行處理
(E)步驟(C)、(D)會不斷重復,直到訪問憑證(Access Token)過期,此時流程會跳轉至(G)
(F)由于憑證過期,資源服務器會返回憑證過期的錯誤
(G)客戶端(Client)使用刷新憑證(Refresh Token)請求新的訪問憑證(Access Token)
(H)認證服務器驗證刷新憑證,驗證通過,辦法新的訪問憑證和刷新憑證

客戶端的授權類型

授權碼模式

流程

OAuth2.0介紹
(A)客戶端(Client)使瀏覽器(User-Agent)跳轉至認證服務器(Authorization Server)的認證接口,請求信息包含客戶端標識、請求范圍、跳轉URI(跳轉至客戶端,用來提取授權碼)
(B)認證服務器(Authorization Server)驗證資源所有者(Resource Owner),通常就是用戶填寫用戶名密碼并確認是否授權
(C)認證服務器(Authorization Server)如果驗證通過,則會返回給瀏覽器(User-Agent)步驟(A)中發送的跳轉URI,跳轉至客戶端(Client),跳轉URI中同時會攜帶授權碼(Authorization Code)
(D)客戶端(Client)使用授權碼(Authorization Server)向認證服務器(Authorization Server)請求訪問憑證(Access Token),同時還會攜帶跳轉URI用于客戶端提取訪問憑證(Access Token)
(E)認證服務器(Authorization Server)驗證授權碼(Authorization Server),驗證通過后頒發訪問憑證(Access Token)

授權碼請求(Authorization Request)

請求包含以下參數:

  • response_type:表示授權類型,必選項,此處的值固定為”code”
  • client_id:表示客戶端的ID,必選項
  • redirect_uri:表示重定向URI,可選項
  • scope:表示申請的權限范圍,可選項
  • state:表示客戶端的當前狀態,可以指定任意值,認證服務器會原封不動地返回這個值。
    GET /authorize?response_type=code&client_id=s6BhdRkqt3&state=xyz
          &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1
    Host: server.example.com
    
授權碼響應(Authorization Response)

響應包含以下參數:

  • code:表示授權碼,必選項。該碼的有效期應該很短,通常設為10分鐘,客戶端只能使用該碼一次,否則會被授權服務器拒絕。該碼與客戶端ID和重定向URI,是一一對應關系。
  • state:如果客戶端的請求中包含這個參數,認證服務器的回應也必須一模一樣包含這個參數。
    HTTP/1.1 302 Found
    Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA
            &state=xyz
    
訪問憑證請求(Access Token Request)
  • grant_type:表示使用的授權模式,必選項,此處的值固定為”authorization_code”。
  • code:表示上一步獲得的授權碼,必選項。
  • redirect_uri:表示重定向URI,必選項,且必須與A步驟中的該參數值保持一致。
  • client_id:表示客戶端ID,必選項。
    POST /token HTTP/1.1
    Host: server.example.com
    Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
    Content-Type: application/x-www-form-urlencoded
    grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
    &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
    
訪問憑證響應(Access Token Response)
  • access_token:表示訪問令牌,必選項。
  • token_type:表示令牌類型,該值大小寫不敏感,必選項,可以是bearer類型或mac類型。
  • expires_in:表示過期時間,單位為秒。如果省略該參數,必須其他方式設置過期時間。
  • refresh_token:表示更新令牌,用來獲取下一次的訪問令牌,可選項。
  • scope:表示權限范圍,如果與客戶端申請的范圍一致,此項可省略。
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}

隱藏模式

流程

OAuth2.0介紹
(A)客戶端(Client)通過瀏覽器(User-Agent)跳轉至認證服務器(Authorization),請求中包含客戶端標識和跳轉URI
(B)用戶(Resource Owner)填寫用戶密碼,認證服務器(Authorization)對其進行認證
(C)認證服務器(Authorization)認證通過后,返回之前傳入的跳轉URI至瀏覽器,跳轉URI中以錨點(#)的方式包含訪問憑證(Access Token)
(D)瀏覽器(User-Agent)跳轉至URI指向的客戶端的Web服務器,瀏覽器(User-Agent)保留錨點之后的信息
(E)客戶端Web服務器返回一個web頁面(其中包含嵌入的腳本),web頁面能夠提取錨點中的信息,并發送完整的URI至客戶端
(F)瀏覽器(User-Agent)執行Web頁面中的腳本
(G)瀏覽器(User-Agent)發送訪問憑證(Access Token)至客戶端(Client)

Authorization Request

參數包括:

  • response_type:表示授權類型,此處的值固定為”token”,必選項。
  • client_id:表示客戶端的ID,必選項。
  • redirect_uri:表示重定向的URI,可選項。
  • scope:表示權限范圍,可選項。
  • state:表示客戶端的當前狀態,可以指定任意值,認證服務器會原封不動地返回這個值。
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
Access Token Response

參數包括:

  • access_token:表示訪問令牌,必選項。
  • token_type:表示令牌類型,該值大小寫不敏感,必選項。
  • expires_in:表示過期時間,單位為秒。如果省略該參數,必須其他方式設置過期時間。
  • scope:表示權限范圍,如果與客戶端申請的范圍一致,此項可省略。
  • state:如果客戶端的請求中包含這個參數,認證服務器的回應也必須一模一樣包含這個參數。
HTTP/1.1 302 Found
Location: http://example.com/cb#access_token=2YotnFZFEjr1zCsicMWpAA
&state=xyz&token_type=example&expires_in=3600

用戶密碼模式

流程

OAuth2.0介紹
(A)資源所有者(Resource Owner)提供給客戶端(Client)用戶名和密碼
(B)客戶端(Client)使用用戶名/密碼,向認證服務器(Authorization Server)請求訪問憑證(Access Token)
(C)證服務器(Authorization Server)驗證用戶名/密碼,驗證通過后頒發訪問憑證(Access Token)

訪問憑證請求 Access Token Request

參數包括:

  • grant_type:表示授權類型,此處的值固定為”password”,必選項。
  • username:表示用戶名,必選項。
  • password:表示用戶的密碼,必選項。
  • scope:表示權限范圍,可選項。
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
訪問憑證響應 Access Token Response
HTTP/1.1 200 OK
     Content-Type: application/json;charset=UTF-8
     Cache-Control: no-store
     Pragma: no-cache
     {
       "access_token":"2YotnFZFEjr1zCsicMWpAA",
       "token_type":"example",
       "expires_in":3600,
       "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
       "example_parameter":"example_value"
     }

客戶端憑證模式

流程

OAuth2.0介紹
(A)客戶端(Client)向認證服務器(Authorization Server)請求訪問憑證(Access Token)
(B)認證服務器(Authorization Server)驗證客戶端(Client),如果驗證通過則頒發訪問憑證(Access Token)

Access Token Request

參數:

  • grant_type:表示授權類型,此處的值固定為”client_credentials”,必選項。
  • scope:表示權限范圍,可選項。
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
Access Token Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"example_parameter":"example_value"
}

當前標題:OAuth2.0介紹-創新互聯
文章起源:http://www.xueling.net.cn/article/jehjc.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 欧美噜噜噜| 亚洲国产精品久久久久秋霞1 | 欧美熟乱妇 | 精品久久AⅤ人妻中文字幕 亚洲精品久久无码AV片软件 | 国产SM调教视频在线观看 | 成人毛片免费网站 | 成人九色 | 中文字幕人妻三级中文无码视频 | 国产在线亚州精品内射 | 天天艹夜夜 | 麻豆一区二区三区精品视频 | 人人干人人操人人摸 | 国产sm免费视频专区 | 亚洲成人aaa| 国产日韩精品一区二区三区在线 | 99国产午夜精品 | 91久久奴性调教 | 性爱视频在线播放 | 国产四区在线 | 忘忧草在线影院www日本韩国 | 精品久久久久久久久久ntr影视 | 日韩精品久久一区二区三区 | 久久久婷婷成人综合激情 | 免费av手机在线观看 | 国产一级久久久久 | 久久久人人爽 | 中国护士一级毛片 | 插j视频 | 国产一级一片免费播放 | 欧美巨大丰满猛性社交 | 亚洲美女又黄又爽在线观看 | 蜜臀av性久久久久蜜臀av | 欧美孕妇变态重口另类 | 偷拍粉嫩25位美女视频在线观看 | 色婷婷久久一区二区三区麻豆 | 国产精品扒开腿做爽爽的视频 | 亚洲精品乱码久久久一二三 | 亚洲一区二区久久 | 很色很黄很大爽的视频 | 精品国产一区二区三 | 成全视频在线观看大全腾讯地图 |