OAuth2.0 授权方式及步骤梳理总结
OAuth 2.0授权协议使第三方应用程序可以通过协调资源所有者和HTTP服务之间的批准交互,或者通过允许第三方应用程序代表资源所有者来获得对HTTP服务的有限访问权,或者代表资源所有者。 代表自己获取访问权限。通常的授权方式分为以下四种:
一、Authorization_Code_Grant [授权码方式] (最完整方式,针对用户的授权) 【常用】
| 1、发起申请授权 | 2、用户确认授权 | 3、申请Token | 4、过期取新Token |
| 通过授权链接 > 跳转认证页面 | 用户登录 > 返回授权码 | 通过授权码申请Token > 返回Token(附带refresh_token) | 依据refresh_token 取新Token |
参考流程图如下:(图片来源:draft-ietf-oauth-v2-31 4.1 )
二、Implicit_Grant [授权码缺省方式] (可纯前端方式,针对用户的授权) 【常用】
| 1、发起申请授权 | 2、用户确认授权 | 4、过期取新Token |
| 通过授权链接 > 跳转认证页面 | 用户登录 > 返回Token(附带refresh_token) | 依据refresh_token 取新Token |
参考流程图如下:(图片来源:draft-ietf-oauth-v2-31 4.2 )
三、Client_Credentials [平台凭证方式] (可纯后端方式,针对平台的授权,多用户共享) 【少见】
| 1、发起申请 | 4、过期取新凭证 |
| 平台发起申请 > 返回给平台凭证 | 凭证过期 取新凭证 |
参考流程图如下:(图片来源:draft-ietf-oauth-v2-31 4.4 )
四、Password_Credentials [密码凭证方式] (充分信任的双方) 【内网系统】
适用于双方有充分信任关系的情况,例如其操作系统或高特权的应用程序。授权服务器在启用此种授予类型时应当注意,只有在其它授权方式不可能时,再考虑此种授权类型。
首先,用户在平台登录页输入登录凭证,平台依据用户输入的登录凭证信息(通常为账号密码)向授权服务器发起Token申请。授权服务器Response Token。它还用于通过将存储的凭据转换为访问令牌,使用HTTP Basic或Digest身份验证等直接身份验证方案将现有客户端迁移到OAuth。
| 1、平台登录 | 2、认证授权 | 4、过期取新Token |
| 用户登录 > 发起申请 | 认证并返回Token(附带refresh_token) | 依据refresh_token 取新Token |
参考流程图如下:(图片来源:draft-ietf-oauth-v2-31 4.3 )
有误必究,欢迎指出,持续更新,万分感谢,共同学习。
OAuth2.0 授权方式及步骤梳理总结的更多相关文章
- OAuth2.0授权机制说明
授权机制说明 1 简介 优酷对第三方应用用户授权采用OAuth2.0标准 2 OAuth2.0 授权方式 优酷支持OAuth 2.0的三种授权方式,请根据平台选用不同的授权方式: 2.1 通用授权 ...
- OAuth2.0授权码模式
OAuth2.0简单说就是一种授权的协议,OAuth2.0在客户端与服务提供商之间,设置了一个授权层(authorization layer).客户端不能直接登录服务提供商,只能登录授权层,以此将用户 ...
- oauth2.0+app方式 webgis 授权
.认证方式有三种 Oauth2.0, Token-based http/windows 二.用户登录与应用登录区别 两者区别在于:当用户登录时,服务器端平台是否直接识别登录信息和验证登录信息. 应用登 ...
- OAuth2.0授权
一.什么是OAuth2.0官方网站:http://oauth.net/ http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secu ...
- 使用DotNetOpenAuth搭建OAuth2.0授权框架
标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1.0. ...
- 微信开发——OAuth2.0授权
微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一. ...
- 使用微服务架构思想,设计部署OAuth2.0授权认证框架
1,授权认证与微服务架构 1.1,由不同团队合作引发的授权认证问题 去年的时候,公司开发一款新产品,但人手不够,将B/S系统的Web开发外包,外包团队使用Vue.js框架,调用我们的WebAPI,但是 ...
- API代理网关和OAuth2.0授权认证框架
API代理网关和OAuth2.0授权认证框架 https://www.cnblogs.com/bluedoctor/p/8967951.html 1,授权认证与微服务架构 1.1,由不同团队合作引发的 ...
- Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息
转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...
随机推荐
- Mybatis自定义拦截器与插件开发
在Spring中我们经常会使用到拦截器,在登录验证.日志记录.性能监控等场景中,通过使用拦截器允许我们在不改动业务代码的情况下,执行拦截器的方法来增强现有的逻辑.在mybatis中,同样也有这样的业务 ...
- 亲自动手实现Python+pygame中国象棋游戏
功能1:实现游戏整体界面显示 一.创建基本的结构 代码如下: import time import pygame def main(): # 初始化pygame pygame.init() # 创建用 ...
- 经典变长指令ModR/M
变长指令 不是所有的指令都是,看到opcode就知道有多长(定长指令),当指令中出现内存操作对象的时候,就需要在操作码后面附加一个字节来进行补充说明,这个字节被称为ModR/M. 该字节的8个位被分成 ...
- (5)MySQL进阶篇SQL优化(优化数据库对象)
1.概述 在数据库设计过程中,用户可能会经常遇到这种问题:是否应该把所有表都按照第三范式来设计?表里面的字段到底改设置为多大长度合适?这些问题虽然很小,但是如果设计不当则可能会给将来的应用带来很多的性 ...
- 滴水逆向初级-C语言(二)
2.1.C语言的汇编表示 c语言代码 int plus(int x,int y) { return 0; } void main() { __asm { mov eax,eax } //调用函数 pl ...
- 神奇的魔方阵--(MagicSquare)(1)
本篇文章只对奇数阶以及偶数阶中阶数n = 4K的魔方阵进行讨论.下面就让我们进入正题: 1 :魔方阵的相关信息:(百度百科) https://baike.baidu.com/item/%E9%AD%9 ...
- Dynamics CRM报表提示rsProcessingAborted解决方法
有时候CRM用的好好的突然报表提示了一个错误,rsProcessingAborted如下图: 开始以为是权限问题,在数据库捣鼓了很长时间,服务也重启了很多遍都没效果.后来试了一下重新安装一下报表服务器 ...
- BUAA_OO_第二单元
BUAA_OO_2020_UNIT2 一.程序结构分析 第五次作业 UML & Mertrics 电梯的调度问题,实质上就是任务的请求与分配问题,笔者在第五次作业中采用简单的"生 ...
- Java内置内存分析
Java内存分析 package com.chao.reflection; public class Test05 { public static void main(String[] args) { ...
- Linux保护机制和绕过方式
Linux保护机制和绕过方式 CANNARY(栈保护) 栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行.用C ...