OAuth2是什么?能干什么?

前言
1. OAuth2是什么

在这里插入图片描述
简单来说,就是一种授权认证;一种针对开放系统间授权,分布式访问(单点登录)和现代微服务安全的解决方案;这种解决方案为我们提供了一种思路,但具体的实现我们要自己书写(就好比给我们一个接口)
所能解决的问题:开放系统键授权,分布式访问(单点登录)和 现代微服务安全

2. 开放系统间授权

在这里插入图片描述
假如Lucy 需要把百度网盘上的图片在网上的某个地方进行打印;这时候该打印的地方是不能直接获取百度网盘上的图片的;因为它没有该访问的权限(即我们所谓的用户名和密码),这时候,该打印的地方需要Lucy给它相关的授权认证。===>OAuth2就是来解决该问题的。
该问题的解决也不是一蹴而就的(它是经过演变而来的)
方式一: 密码和用户名复制
适用于同一公司内部的多个系统,不适用于不受信的第三方应用
在这里插入图片描述
这种方法虽然能解决打印图片的问题,但它的安全性可想而知;我们需要把个人信息直接曝光在其他的平台上,这样我们的很多隐私就会暴露,所以这种方式并不可取。
方式二:通用开发者key
适用于合作商或者授信的不同业务部门之间
在这里插入图片描述
该方法看上去十分完美,只要我们得到相关的万能钥匙就能访问用户提供的图片,并做打印服务;可这个方案存在一个天然缺陷,我们需要找到百度网盘进行合作;可并非每一个公司都有这个资质的,你是一个刚起步的小公司。假如你向百度发起了合作,很显然成功的概率并不大,所以该解决方案适用的场景也十分狭小了。

方式三:办法令牌
接近OAuth2方式,需要考虑如何管理令牌、颁发令牌、吊销令牌,需要统一的协议,因此就有了OAuth2协议
在这里插入图片描述
OAutho2该解决方案完美地解决了用户信息安全性低,与大公司难以协作的问题;发放令牌也就是生成随机的具有特殊含义的字符串,该字符串能访问特定权限的文件。(显然比找大公司合作更方便)

2.分布式访问(单点登录)

单点登录的介绍可参考:单点登录
在这里插入图片描述
OAuth2的解决方案:令牌机制,按照一定规则生成字符串,字符串包含用户信息(类似于单点登录中的token解决方案)
这种登录方式就好比我们在edu登录了,其余几个模块也能得到我们的用户信息而不需要再一次登录(类似于我们登录了百度账号,就能在贴吧,文库等地方看到自己的登录信息)
[1] 在一个模块登录成功之后,按照一定规则(可以是JWT)生成,字符串包含用户信息
[2] 把生成字符创通过路径,请求头或者cookie进行传送
[3] 后面发送请求的时候,每次带着字符串进行发送,获取字符串,从字符串中获取用户的登录信息。

3. 现代微服务安全

[1] 传统单块应用的安全
在这里插入图片描述
[2] 现代微服务的安全
现代微服务中系统微服务化以及应用的形态和设备类型增多,不能用传统的登录方式
核心的技术不是用户名和密码,而是token,由AuthServer颁发token,用户使用token进行登录
在这里插入图片描述

[3] 我们生活中OAuth2应用
在这里插入图片描述
[4] OAuth2.0的误解
在这里插入图片描述
在这里插入图片描述

4. 总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值