OAuth2介绍

OAuth2是一个开放标准,允许用户授权第三方应用访问其存储在其他服务提供者上的信息,而无需分享用户名和密码。它解决了传统方式中用户密码安全、权限控制等问题。OAuth2流程包括用户授权、客户端获取令牌、资源服务器开放资源等步骤,广泛应用在第三方应用授权登录等场景。
摘要由CSDN通过智能技术生成

OAuth2

什么是OAuth2

OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。

演化历程

背景:照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源,这时云冲印服务就需要获取用户的授权,去云服务器上获取照片拥有者需要获取的照片资源。
在这里插入图片描述
资源拥有者:照片拥有者
客户应用:云冲印
受保护的资源:照片
在这里插入图片描述

方式一:用户名密码复制

在这里插入图片描述
用户(资源拥有者)将自己的**"云存储"服务(受保护的资源)的用户名和密码**,告诉"云冲印"客户应用),后者就可以读取用户的照片了。这样的做法有以下几个严重的缺点
(1)“云冲印”(客户应用)为了后续的服务,会保存用户的密码,这样很不安全
(2)Google不得不部署密码登录,而我们知道,单纯的密码登录并不安全
(3)"云冲印"拥有了获取用户储存在Google所有资料的权力,用户没法限制"云冲印"获得授权的范围和有效期
(4)用户只有修改密码,才能收回赋予"云冲印"的权力。但是这样做,会使得其他所有获得用户授权的第三方应用程序全部失效
(5)只要有一个第三方应用程序被破解,就会导致用户密码泄漏,以及所有被密码保护的数据泄漏。
总结:
将受保护的资源中的用户名和密码存储在客户应用的服务器上,使用时直接使用这个用户名和密码登录
适用于同一公司内部的多个系统不适用于不受信的第三方应用

方式二:通用开发者key

适用于合作商或者授信的不同业务部门之间(类似于一把万能钥匙
在这里插入图片描述

方式三:颁发令牌

接近OAuth2方式,需要考虑如何管理令牌、颁发令牌、吊销令牌,需要统一的协议因此就有了OAuth2协议
在这里插入图片描述
令牌类比仆从钥匙
在这里插入图片描述

应用场景

第三方应用授权登录:开放系统间授权,在APP或者网页接入一些第三方应用时,时长会需要用户登录另一个合作平台,比如QQ,微博,微信的授权登录。
在这里插入图片描述
在这里插入图片描述

Oauth2的流程

Oauth2,client就是第三方应用,根据RFC6749文档,大致的流程如下图所示
在这里插入图片描述

(A)用户打开客户端以后,客户端要求用户给予授权
(B)用户同意给予客户端授权。
(C)客户端使用上一步获得的授权向认证服务器申请令牌
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌,发放一个Access token。
(E)客户端使用令牌Access token,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资
源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenlbang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值