图文+代码讲解带你攻克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请求,所以无需刷新令牌。

目录
相关文章
|
开发者
AppsFlyer 研究(十六)广告平台配置及代理商授权总结
AppsFlyer 研究(十六)广告平台配置及代理商授权总结
368 0
|
5月前
|
XML 数据安全/隐私保护 数据格式
程序与技术分享:CWMP开源代码研究4——认证流程
程序与技术分享:CWMP开源代码研究4——认证流程
|
3月前
|
人工智能 安全 API
【解锁神秘力量!】ModelScope中的访问令牌:掌控AI世界的钥匙 —— 探索身份验证与授权的终极奥秘!
【8月更文挑战第7天】ModelScope(魔搭)作为开放的模型即服务平台,提供丰富的预训练模型。访问令牌在此类平台中至关重要,用于验证用户身份并授权访问特定模型或服务。本文介绍访问令牌的概念、获取方法及使用示例,强调安全性与有效期内的使用,并简述刷新令牌机制。掌握这些知识可帮助用户安全高效地利用ModelScope的资源。
110 1
|
4月前
|
开发框架 运维 监控
公链开发详情丨公链联盟链系统开发指南步骤/功能设计/项目案例
公链系统开发是一项复杂而综合的任务,涉及多个层面和环节。下面将为你提供一个大致的公链系统开发操作流程,涵盖了一些关键细节:
|
API 区块链 Python
对接API火币/币安/OK/欧易交易所系统开发详细功能/案例设计/策略项目/源码功能
合约量化系统是一种自动化交易工具,它通过计算机程序实现交易决策和执行。
|
6月前
|
小程序 测试技术 API
【社区每周】芝麻身份信息验证能力API更新(1月第二期)
【社区每周】芝麻身份信息验证能力API更新(1月第二期)
47 0
|
6月前
|
小程序 JavaScript IDE
【社区每周】如何实现小程序代码热更新?芝麻工作证新增“企业员工”职业身份验证(1月第四期)
【社区每周】如何实现小程序代码热更新?芝麻工作证新增“企业员工”职业身份验证(1月第四期)
58 0
|
XML JSON 前端开发
史上最强的权限系统设计攻略(下)、ABAC在复杂场景下的实现思路
史上最强的权限系统设计攻略(下)、ABAC在复杂场景下的实现思路
1550 0
|
缓存 安全 API
网络平台挑选实名制认证API接口的注意事项
网络平台实名制认证是对用户真实性身份进行的一种查验审核,有助于建立完善可靠的互联网信用基础。对于网络平台运营者来说,身份实名认证除了符合工信部监管政策外,也可以帮助平台方筛选掉部分无效客户,规避一定的风险,净化网络环境。
349 0
网络平台挑选实名制认证API接口的注意事项
|
安全 Java API
手机号码归属地 API 实现防止骚扰电话,看这一篇就够了(内附设计思路和代码)
本文将会深入探讨如何利用手机号码归属地 API 在防止电话骚扰,此外,还会给大家列出手机号码归属地 API 的其他应用场景。
473 0
手机号码归属地 API 实现防止骚扰电话,看这一篇就够了(内附设计思路和代码)
下一篇
无影云桌面