图文+代码讲解带你攻克OAuth 2.0授权流程的三座大山(上)

简介: 图文+代码讲解带你攻克OAuth 2.0授权流程的三座大山

授权码许可最为完备,但有时过于复杂,难以实现。OAuth 提供了其他三种更方便实现的方案。

比如,xx软件是公众号官方开发的一款软件,那么使用xx就没必要再走一遍授权码许可类型流程。授权码许可通过授权码这种临时中间值,让用户参与,从而让xx和公众号之间建立联系,进而让xx代表我访问在公众号里的文章数据。

1 资源拥有者凭据许可

自己平台的肯定是被公众号信赖的,不是三方软件。我也是公众号的号主,即软件和号主都是公众号的所属。就没必要再使用授权码许可。但xx依然要访问文章数据API,提供为我排版功能。为保护这种场景下的 API,OAuth 2.0 提供了资源拥有者凭据许可类型。

资源拥有者的凭据,即用户的凭据:用户名和密码。这么简陋方案,咋敢用的?xx现在是公众号官方开发的软件,我也是其号主,那么我其实可以使用用户名和密码直接使用xx。因为这里无三方。


但若每次xx都拿我的用户名和密码来通过调用 API 访问我号里的文章数据,甚至其他敏感信息,无疑增加用户名和密码被攻击风险。若用token代替这些敏感信息,就能保护敏感信息,xx只需使用一次用户名和密码数据来换回一个token,进而通过token来访问我的号里数据,以后就不会再使用用户名和密码了。


该许可类型的时序图

image.png

  1. 当我访问第三方软件xx时,会提示输入用户名和密码。索要用户名和密码,就是资源拥有者凭据许可类型的特点
  2. 这里的grant_type的值为password,告诉授权服务使用资源拥有者凭据许可凭据的方式去请求访问。

image.png

  1. 授权服务在验证用户名和密码之后,生成access_token的值并返回给三方软件。

image.png

适用场景

软件是官方发行即可。

2 客户端凭据许可

若无明确资源拥有者,即xx访问了一个无需用户me授权的数据,比如

  • 获取公众号LOGO的地址,该数据不属任何第三方用户
  • 三方软件访问平台提供的省份信息,省份信息也不属任何一个第三方用户

此时的授权流程无需资源拥有者。这时其实第三方软件就变成资源拥有者了。这即是客户端凭据许可场景:第三方软件直接使用注册时的app_id和app_secret换取访问令牌access_token的值。

image.png

授权过程没有资源拥有者me的参与,小兔软件的后端服务可随时发access_token请求,所以无需刷新令牌。

目录
相关文章
|
7月前
|
XML 数据安全/隐私保护 数据格式
程序与技术分享:CWMP开源代码研究4——认证流程
程序与技术分享:CWMP开源代码研究4——认证流程
|
6月前
|
开发框架 运维 监控
公链开发详情丨公链联盟链系统开发指南步骤/功能设计/项目案例
公链系统开发是一项复杂而综合的任务,涉及多个层面和环节。下面将为你提供一个大致的公链系统开发操作流程,涵盖了一些关键细节:
|
8月前
|
安全 中间件 区块链
BRC-20铭文系统开发详细教程/步骤方案/需求设计/规则玩法/源码程序
中间件技术:使用中间件技术可以简化BRC20铭文智能合约跨链系统的开发过程。中间件提供了一些常用功能的封装,例如处理网络通信、
|
8月前
|
小程序 JavaScript IDE
【社区每周】如何实现小程序代码热更新?芝麻工作证新增“企业员工”职业身份验证(1月第四期)
【社区每周】如何实现小程序代码热更新?芝麻工作证新增“企业员工”职业身份验证(1月第四期)
70 0
|
存储 前端开发 安全
BSC链盲盒游戏系统开发实现技术原理丨dapp盲盒游戏系统开发案例规则/源码设计/方案项目
  智能合约:它们是存储在区块链上的计算机程序,在满足预定条件时运行,智能合约是用Solidity语言编写的
|
XML JSON 前端开发
史上最强的权限系统设计攻略(下)、ABAC在复杂场景下的实现思路
史上最强的权限系统设计攻略(下)、ABAC在复杂场景下的实现思路
1624 0
|
XML 安全 JavaScript
技术汇总:第八章:CAS单点登录
技术汇总:第八章:CAS单点登录
362 0
|
前端开发 JavaScript
图文+代码讲解带你攻克OAuth 2.0授权流程的三座大山(下)
图文+代码讲解带你攻克OAuth 2.0授权流程的三座大山
153 0
图文+代码讲解带你攻克OAuth 2.0授权流程的三座大山(下)
图文+代码带你攻克OAuth 2.0三大核心授权类型(中)
图文+代码带你攻克OAuth 2.0三大核心授权类型
130 0
图文+代码带你攻克OAuth 2.0三大核心授权类型(中)
|
前端开发 JavaScript
图文+代码带你攻克OAuth 2.0三大核心授权类型(下)
图文+代码带你攻克OAuth 2.0三大核心授权类型
123 0
图文+代码带你攻克OAuth 2.0三大核心授权类型(下)