苦行僧DH

博客园 首页 新随笔 联系 订阅 管理

1、是什么?

	OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将原服务提供者的我们隐私信息提供给第三方应用或完全分享给他们所有的数据,为了实现这种效果那么就有了OAuth标准,它仅仅是定义了一个标准,而不是实现。
	现如今OAuth使用版本都是2.0。
	OAuth2.0是OAuth的延续版本,但是注意它并不向下兼容1.0版本,而是直接废弃了1.0版本。

2、应用场景

2.1、云打印

好兄弟先来张图:

我们用户就是相片拥有者,我们需要使用云冲印服务来打印我们在云存储服务上存储的照片,那么这个时候就会出现问题。

云冲印服务云存储服务本身是两个服务提供商,用户要使用云冲印服务来打印照片, 那么这个时候用户就是第一方,我们照片所在的云存储服务就是第二方,而云冲印服务就是第三方。

那么这个时候我们该如何让云冲印服务来拿到我们在云存储服务上的图片文件呢,我们大概有三种(但不仅限于三种):

1、复制用户名密码

​ 粗暴猛男才用的方法,该方法便捷迅速,但是出现的问题就是太不安全,不适用于不完全信任的第三方服务提供商,所以此方法不可用

2、通用Key

​ 云冲印和云服务这两个提供商协同开发一个通用Key,使用云冲印服务可以使用这个Key来访问云存储上的资源,但这种方式需要第二方和第三方达成协议,可行性太小,不可用。

3、方法令牌

​ 我们给云冲印服务一个令牌,令牌经过特殊加密且可以携带某些用户信息,如果云存储方觉得这个令牌是他们这个颁发的且合法,那么就那可以拿到令牌中的信息后指定其访问某些资源。

​ 这种方法也有问题,如何让各个服务提供商达成协议?那么达成的协议就是OAuth2,至于我们发放的令牌如何加密,发放、吊销等,只需要有一个统一的协议,具体实现可以自拟。

2.2、第三方授权登录

这个就没图了,大概说一下,就是比如我们要在xx网站使用快捷登录的方法微信登录,那么这个时候我们需要将我们微信的信息交给xx网站,那么我们微信的信息肯定是在微信服务提供商中,那么如何让xx网站能访问我们在微信服务提供商中的信息呢,那么这就需要OAuth2的协议标准。

3、总结

OAuth2是什么?

​ 是一个开发授权协议标准,统一了服务间授权的标准,但为统一其实现,仅仅是一个标准。

应用场景?

​ 主要是第三方授权。

posted on 2020-09-10 19:20  苦行僧DH  阅读(145)  评论(0编辑  收藏  举报