WEB使用OAuth2协议实现开放接口的设计方案

WEB使用OAuth2协议实现开放接口的设计方案(待完善)

术语

developer:开发者,第三方应用的开发者。

openPlat:开放平台,发放App Key(相当于第三方应用的ID)、App Secret(私钥,验证ID是否唯一有效,需要妥善保管)。

Authorization Server:授权服务端,发放Code、Access Token,验证App Key、App Secret、Code的有效性。

Resource Server:资源服务器,验证Access Token,提供资源的访问接口。

Client:客户端(第三方应用),发送访问受保护资源的请求,获取Code、Access Token。

Resource Owner:资源拥有者,对保护资源有访问许可控制的实体(一般是指个人)。

Protected Resource:受保护的资源,能够通过OAuth2.0获取访问控制权的资源。

Authorization Code:授权码

Refresh Token:刷新令牌,Access Token失效后刷新Access Token的一个标识。

Access Token:访问令牌

API:资源封装为接口对外开放,得到访问授权的第三方应用可以调用API。

扫描二维码关注公众号,回复: 2804845 查看本文章

架构

 

开放平台

功能

发放App Key、App Secret

第三方应用在WEB提供的开放平台注册,提供回调地址;开放平台生成App Key、App Secret,并返回给第三方应用。授权服务器通过App Key、App Secret、回调地址验证第三方应用是否被授权了。

接口设计

获取App Key、App Secret的接口

传入的参数:

Client name:第三方应用的名称

Callback_url:回调地址

content:介绍内容

以及第三方应用的其他属性。

传出的参数:

App key:第三方应用的ID

App Secret:密钥

页面设计

申请获取App Key、App Secret页面

收集以下参数:

Client name:第三方应用的名称

Callback_url:回调地址

content:介绍内容

以及第三方应用的其他属性。

返回App Key、App Secret页面

呈现第三方应用的App Key、App Secret给开发者。

授权服务端

功能

发放Code

授权服务器验证用户的凭证(一般是用户名、密码,授权服务器存储了大量的用户信息,每个用户都有自己的受保护的资源)有效,则给发放Code,并将Code返回给第三方应用。Code是明文传输。

发放Access Token

第三方应用使用Code去换取Access Token。此时验证第三方的ID(App Key、App Secret)、Code的有效性。

验证App Key、App Secret

授权服务器保存已经注册的第三方应用的App Key、App 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 Token:Access Token中包含了AppId和用户信息UserIdd等。

获取到Access Token

之后,就可以向资源服务器出示Access Token,访问受保护资源。

页面设计

设计两个页面:a、登陆页面;b、授权页面

登陆页面

展示给资源拥有者,输入用户名的、密码。登录成功后,如果未授权,则跳转到授权页面;如果已经授权,直接跳转到callback_url页面,并返回一个访问许可。

授权页面

展示给资源拥有者,如果用户已经授权,则直接跳转到callback_url页面,并返回一个访问许可;如果未授权,则出现授权页面,授权成功后,跳转到callback_url,并返回一个访问许可。

第三方应用接入WEB

                                                              

接口设计

与授权服务器的接口

与资源服务器的接口

与WEB的接口

页面设计

引导用户登录的页面

资源展示的页面

猜你喜欢

转载自blog.csdn.net/m0_37542889/article/details/81506697
今日推荐