标签:openid

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完整交互流程如下。

这里引入...