OpenID over OAuth2.0 详解
需要在Thingsboard上面加OAuth Server功能。
如上是一开始的需求,但是随着深入理解,这里的OAuth Server并不正确,所以需要先科普知识。
对于OAuth ,参考OAuth2.0,里framework里面并没有定义OAuth Server 角色。它定义了4个角色
Resource Ower;
资源拥有者;
Resource Server;
资源服务器,对外提供访问接口;
Client
客户端,需要访问资源的对象;
Authorization Server;
授权服务器;
尽管我们还不知道明确这角色的区分,但是我们需求更接近Authorization Server。
接下来理解OAuth2.0 的协议流程。
看图理解,比较简单。
- A 客户端发起受保护源请求;
- B 资源拥有者同意访问,返回授权码;
- C 客户端通过该授权码继续请求;
- D 授权服务器分配访问访问令牌;
- E 客户端通过令牌完成保护资源的访问;
- F 完成保护资源的访问;
对于过程B,区分不同授权类型(Grant Type),详细参考rfc6749#section-1.3. Authorization Grant,对于OAuth2.0 用以登录,也就是Thingsboard 的OAuth login功能,其实采用了这里的4.1. Authorization Code Grant。
在该类型下,OAuth login完整交互流程如下。
这里引入...