OAuth 2.0 中第三方软件和资源服务器如何介入

在OAuth 2.0 中一共有四个角色,资源拥有者,授权服务,资源服务器和第三方软件,前面的文章分享了授权服务要做什么。

这篇文章分享一下第三方软件和资源服务器要怎么实现OAuth 2.0


首先我们回顾下他们的角色是什么,

第三方软件就是客户端,需要访问用户在某个软件上的资源,比如小兔打单软件需要访问商户在京东平台上的订单信息。

资源服务器就是资源所在的服务器,比如京东后台存储用户订单信息的服务器。


那先看一下第三方软件要做哪些工作,才能接入OAuth 2.0。

第三方软件总共需要四步,分别是注册信息、引导授权、使用访问令牌、使用刷新令牌

1. 注册信息。第三方软件需要在授权服务器上注册,包括不仅限于app id, app secret,redirect link和scope等。这种方式也叫做静态注册

2. 引导授权。第三方软件需要有一个引导用户授权的页面,当用户点击授权后,跳转到授权服务器提供的授权页面。

3. 使用访问令牌。OAuth 2.0 官方建议有三种使用访问令牌的方式

Form-Encoded Body Parameter(表单参数)将访问令牌放入表单参数中,但这种方式会影响请求的参数的格式

URI Query Parameter(URI 查询参数)将访问令牌放入url中,这种很不安全

Authorization Request Header Field(授权请求头部字段)将访问令牌放入Bear Token中,这种最推荐。安全又不影响原有的业务代码的格式。

4. 使用刷新令牌。一个设计良好的第三方软件,在收到访问令牌时,应该要存下访问令牌的expire in的时间,在expire in快到期的时候,通过刷新令牌去刷新。


资源服务器需要实现的工作主要分两个部分,一个是校验访问令牌的有效性,一个是校验访问的权限

需要处理的权限类别有三种,

1. 不同的权限对应不同的操作,比如查询和修改有不同的权限控制

2. 不同的权限对应不同的数据,比如订单信息和个人账户信息就需要不同的权限

3. 不同的用户对应不同的数据,比如用户A不能访问用户B的数据

在现有的微服务架构中,在访问到资源服务器前都会先经过一层网关,网关就会负责其中部分的校验,比如令牌的有效性,等等

但是不代表资源服务器就不需要做校验了哦。

此文章为3月Day6学习笔记,内容来源于极客时间《OAuth2.0 实战课》,强烈推荐该课程!/推荐该课程

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容