前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >OAuth2.0认证和授权机制

OAuth2.0认证和授权机制

作者头像
袁新栋-jeff.yuan
发布于 2020-08-26 10:01:46
发布于 2020-08-26 10:01:46
8890
举报

Auth2.0

什么是Auth2.0?

  1. OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。

授权(authorization)的开放网络标准的流程?

  1. 看下面流程图:

(A)用户打开客户端以后,客户端要求用户给予授权。

(B)用户同意给予客户端授权。

(C)客户端使用上一步获得的授权,向认证服务器申请令牌。

(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。

(E)客户端使用令牌,向资源服务器申请获取资源。

(F)资源服务器确认令牌无误,同意向客户端开放资源。 这么一个过程 2. 看到上面的流程,我们大概都有一个疑问,就是用户同意授权后这个步骤是如何授权的?怎么就算授权成功,通过什么东西去向认证服务器申请令牌?

  • Auth2.0中在这个步骤有4种模式(客户端的授权模式)?
    1. 授权码模式(authorization code)
    2. 简化模式(implicit)
    3. 密码模式(resource owner password credentials)
    4. 客户端模式(client credentials)
  1. 授权码模式(authorization code)
  • 如上图
  1. 用户先在第三方服务点击请求登录,且通过了1,2,3的步骤(这个步骤就等于去访问认证权限服务的门槛)
  2. A用户在进行登录授权的时候发送请求给认证服务器,此时需要附上参数 APPID(你需要登录的第三方服务在认证服务器上维护的ID),redirection URI(第三方服务的地址)…等。
  3. B步骤是认证服务器跳转到需要用户去确认授权的页面,得到用户的意见。
  4. C用户同意授权,反馈给认证服务器
  5. D认证服务器将之前得到的,redirection URI+ code去请求第三方服务的地址,如果用户没有同意的话,就只会,redirection URI地址则会登录失败
  6. E CODE码通过第三方的客户端发送给后台服务,后台服务使用CODE+APPID+appSecret去请求认证服务器拿到令牌AccessToken。认证结束
  7. 上面的这种请求方式是从第三方应用开始(例如:通过微信号登录CSDN) 还有就是直接在resource Owner(用户服务)开始登录 如通过将第三方应用嵌入到微信公众平台上如下图
  1. 其他模式就不在这个赘述 想了解可以点击这里
  2. 从上面看下来Outh2.0 的最终目的是什么呢?
  • 首先我们需要知道两点:
  1. 用户授权信息在授权服务器中是有记录的,当用户第一次授权给相应的第三方应用后,不需要进行再次授权
  2. 每个用户在资源服务器中都有一个唯一的ID,第三方应用可以将其存储起来并与本地用户系统一一对应起来
  3. 如微信公众号的大三方应用就是为了拿微信用户的唯一标识openId来和第三方应用的用户表关联起来或者创建用户。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OAuth2.0授权协议
通过用户授权,第三方服务访问用户存在其他服务上的资源,而不需用户将用户名密码直接传递的资源服务器的安全控制协议。
sucl
2019/09/05
6920
OAuth2.0授权协议
理解OAuth2.0认证
任何身份认证,本质上都是基于对请求方的不信任所产生的。同时,请求方是信任被请求方的,例如用户请求服务时,会信任服务方。
网络安全观
2021/02/25
7140
理解OAuth2.0认证
OAuth 2.0 授权认证详解
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/06/20
1.9K0
OAuth 2.0 授权认证详解
理解OAuth2.0认证与客户端授权码模式详解
OAuth 协议为用户资源的授权提供了一个安全又简易的标准。与以往的授权方式不同之处是 OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 OAuth是安全的。OAuth 是 Open Authorization 的简写
BUG弄潮儿
2021/04/12
5.8K0
OAuth2.0及Spring实现
一般来说需要开放能力给第三方的时候需要用到认证,注意是第三方,内部系统一般来说不用,因为内部我们一般有自己的用户中心或者登录中心,这些系统可以用来做认证,而为什么开放给第三方需要认证呢,主要有以下几方面的原因:
心平气和
2020/09/11
1K0
OAuth2.0及Spring实现
OAuth2.0 认证
密码模式(Resource owner password credentials)流程
谢公子
2022/01/20
1.5K0
OAuth2.0 认证
OAuth2.0认证解析
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。
FB客服
2020/11/16
4.4K0
OAuth2.0认证解析
OAuth2.0认证流程是如何实现的?
大家也许都有过这样的体验,我们登录一些不是特别常用的软件或网站的时候可以使用QQ、微信或者微博等账号进行授权登陆。例如我们登陆豆瓣网的时候,如果不想单独注册豆瓣网账号的话,就可以选择用微博或者微信账号进行授权登录。这样的场景还有很多,例如登录微博、头条等网站,也都可以选择QQ或者微信登录的方式。
用户5927304
2019/07/30
2.3K0
OAuth2.0认证流程是如何实现的?
OAuth2介绍与使用
OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。
辉哥
2019/05/19
1.7K0
OAuth 2.0 极简教程 (The OAuth 2.0 Authorization Framework)
OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0 不兼容OAuth 1.0 。
一个会写诗的程序员
2020/10/29
3.1K0
OAuth 2.0 极简教程 (The OAuth 2.0 Authorization Framework)
OAuth2.0概念以及实现思路简介
OAuth是一个授权规范,可以使A应用在受限的情况下访问B应用中用户的资源(前提是经过了该用户的授权,而A应用并不需要也无法知道用户在B应用中的账号和密码),资源通常以REST API的方式暴露。
程序员一一涤生
2020/01/14
2.2K0
OAuth2.0概念以及实现思路简介
oauth2.0的学习与使用
栗子一: 小新现在想要使用一个“在线打印服务”来打印一些照片,同时小新的照片都存储在了“云网盘”上,按照传统的方式小新要怎么做呢?
向着百万年薪努力的小赵
2022/12/02
8630
常识二Oauth2.0介绍及安全防范
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
码农戏码
2021/03/23
1.5K0
【全栈修炼】396- OAuth2 修炼宝典
严格来说,OAuth2 不是一个标准协议,而是一个安全的授权框架。其详细描述系统中不同角色,用户,服务前端应用(如 API )以及客户端(如网站或APP)之间如何实现相互认证。
pingan8787
2019/11/05
7790
大话Oauth2.0,从概念到实践 (一)
Oauth2.0是一种授权协议,当然也归属为安全协议的范畴,在实际执行的时候就是保护互联网中不断增长的大量WEB API的安全访问。OAuth2.0共包含四种角色,分别是资源所有者、第三方应用(也称为客户端client)、授权服务器和资源服务器。如下图所示,某公司A开发了一个微信小程序(第三方应用)可以帮助我(资源所有者)美化微信服务器(资源服务器)上面的头像,我在用这个微信小程序开发的美化头像功能的时候,首先要给微信小程序授权(授权服务器),这个微信小程序才能访问我的头像,实际上访问的时候微信小程序就是通过WEB API来调用的。授权的过程中我是不可能把我的账号密码给它的,这样的前提下就会有另外方式的授权,也就是上面介绍的现在国际通用的标准OAuth2.0。
王新栋
2019/06/24
9650
【全栈修炼】OAuth2 修炼宝典
> 开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 —— 维基百科
pingan8787
2019/10/30
8140
一文讲透 OAuth2.0 授权流程
只要是对结果第三方公共平台,都不会对 OAuth2.0 协议感到陌生,他是目前最为流行的授权机制,用来授权第三方应用在平台上进行某些受限的操作。 那么,OAuth2.0 存在的意义是什么,又是怎么样的一种授权机制呢?本文我们就来详细介绍一下。
用户3147702
2022/06/27
6.5K0
一文讲透 OAuth2.0 授权流程
OAuth2 认证
随着微服务的兴起,OAuth2也火了起来,由于其自身的优势,俨然已成为微服务API服务接口安全防护的首选。
BUG弄潮儿
2022/04/15
6120
OAuth2 认证
认证授权:OAuth2简介及四种授权模型详解
如今很多互联网应用中,OAuth2 是一个非常重要的认证协议,很多场景下都会用到它,Spring Security 对 OAuth2 协议提供了相应的支持。开发者非常方便的使用 OAuth2 协议
Freedom123
2024/03/29
4.1K0
认证授权:OAuth2简介及四种授权模型详解
OAuth2.0协议详解
更多可以访问:https://tools.ietf.org/html/rfc6749
山行AI
2019/06/28
1.5K0
相关推荐
OAuth2.0授权协议
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文