WEB使用OAuth2協議實現開放接口的設計方案(待完善)

術語

developer:開發者,第三方應用的開發者。服務器

openPlat:開放平臺,發放App Key(至關於第三方應用的ID)、App Secret(私鑰,驗證ID是否惟一有效,須要妥善保管)。架構

Authorization Server:受權服務端,發放CodeAccess Token,驗證App KeyApp SecretCode的有效性。url

Resource Server:資源服務器,驗證Access Token,提供資源的訪問接口。spa

Client:客戶端(第三方應用),發送訪問受保護資源的請求,獲取CodeAccess Token設計

Resource Owner:資源擁有者,對保護資源有訪問許可控制的實體(通常是指我的)。blog

Protected Resource:受保護的資源,可以經過OAuth2.0獲取訪問控制權的資源。接口

Authorization Code:受權碼資源

Refresh Token:刷新令牌,Access Token失效後刷新Access Token的一個標識。作用域

Access Token:訪問令牌開發

API:資源封裝爲接口對外開放,獲得訪問受權的第三方應用能夠調用API

架構

 

開放平臺

功能

發放App KeyApp Secret

第三方應用在WEB提供的開放平臺註冊,提供回調地址;開放平臺生成App KeyApp Secret,並返回給第三方應用。受權服務器經過App KeyApp Secret、回調地址驗證第三方應用是否被受權了。

接口設計

獲取App KeyApp Secret的接口

傳入的參數:

Client name:第三方應用的名稱

Callback_url:回調地址

content:介紹內容

以及第三方應用的其餘屬性。

傳出的參數:

App key:第三方應用的ID

App Secret:密鑰

頁面設計

申請獲取App KeyApp Secret頁面

收集如下參數:

Client name:第三方應用的名稱

Callback_url:回調地址

content:介紹內容

以及第三方應用的其餘屬性。

 

返回App KeyApp Secret頁面

呈現第三方應用的App KeyApp Secret給開發者。

受權服務端

功能

發放Code

受權服務器驗證用戶的憑證(通常是用戶名、密碼,受權服務器存儲了大量的用戶信息,每一個用戶都有本身的受保護的資源)有效,則給發放Code,並將Code返回給第三方應用。Code是明文傳輸。

發放Access Token

第三方應用使用Code去換取Access Token。此時驗證第三方的IDApp KeyApp Secret)、Code的有效性。

驗證App KeyApp Secret

受權服務器保存已經註冊的第三方應用的App KeyApp Public Secret(公鑰),經過私鑰驗證第三方應用是否已經註冊。

驗證Code 

驗證Authorization Code是否有效。

接口設計

設計兩個接口:a、獲取Code的接口;b、獲取Access Token的接口。

 

獲取Authorization Code的接口

客戶端向資源擁有者請求受權,資源請求直接發給資源擁有者,若資源擁有者贊成該客戶端受權,則給客戶端返回一個訪問許可。

傳入的參數:

App Key

App Secret

Callback_url

返回的信息:

未登錄、微受權:跳轉到登錄頁面;

已經登錄、未受權:跳轉到受權頁面;

已經登錄、已經受權:跳轉到傳入的callback_url頁面,並返回一個訪問許可。

獲取Access Token的接口

客戶端向用戶出示本身的私有證書和Authorization Code請求訪問令牌;受權服務器驗證客戶端的私有證書和訪問許可的有效性,驗證有效則向客戶端發送一個訪問令牌,令牌包括了做用域、有效時間以及其餘屬性。

傳入參數:

App Key:應用的ID

App Secret:第三方應用的私鑰。

Callback_url:回調url

傳出的參數:

Access TokenAccess Token中包含了AppId和用戶信息UserIdd等。

獲取到Access Token

以後,就能夠向資源服務器出示Access Token,訪問受保護資源。

頁面設計

設計兩個頁面:a、登錄頁面;b、受權頁面

登錄頁面

展現給資源擁有者,輸入用戶名的、密碼。登陸成功後,若是未受權,則跳轉到受權頁面;若是已經受權,直接跳轉到callback_url頁面,並返回一個訪問許可。

受權頁面

展現給資源擁有者,若是用戶已經受權,則直接跳轉到callback_url頁面,並返回一個訪問許可;若是未受權,則出現受權頁面,受權成功後,跳轉到callback_url,並返回一個訪問許可。

第三方應用接入WEB

                                                              

接口設計

與受權服務器的接口

與資源服務器的接口

WEB的接口

頁面設計

引導用戶登陸的頁面

資源展現的頁面

相關文章
相關標籤/搜索