一、什么是 OAuth2


1、OAuth2正式定义

【编程开发】之 OAuth2

2、令牌的核心

【编程开发】之 OAuth2

3、OAuth2的历史

【编程开发】之 OAuth2

4、OAuth2的优势

【编程开发】之 OAuth2

5、OAuth2的不足

【编程开发】之 OAuth2

6、Auth2涉及的角色

【编程开发】之 OAuth2

7、OAuth2术语

【编程开发】之 OAuth2

8、OAuth2 令牌的类型

【编程开发】之 OAuth2

9、OAuth2的误解

【编程开发】之 OAuth2

总结

【编程开发】之 OAuth2


二、OAuth2 的使用场景


1、OAuth2 解决的问题

  • OAuth2 是针对特定问题的一种解决方案
  • OAuth2 主要解决两个问题:
    • 开发系统间的授权问题
    • 分布式微服务的安全

2、开发系统间的授权问题

比如:用户想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源

【编程开发】之 OAuth2

我们知道图片资源的拥有者为用户,用户可以使用密码登录访问,而打印服务商是没有权限进行访问打印图片的:

【编程开发】之 OAuth2

要解决这个问题我们有一下方法:

方式一:用户名密码复制

【编程开发】之 OAuth2

但这种方式会造成用户的密码泄露,显示是行不通的。

方式二:使用通用开发者key

【编程开发】之 OAuth2

但这种方式只适用于合作商或者授信的不同业务部门之间,比如阿里巴巴和百度合作商,但问题是如果你是创业公司,想要和百度合作显然是不行的,因为公司实力差距大不对等。

方式三:颁发令牌

【编程开发】之 OAuth2

接近 OAuth2 方式,需要考虑如何管理令牌、颁发令牌、吊销令牌,需要统一的协议,因此就有了OAuth2协议。所以解决授权问题的最佳方式就是使用令牌来授权。

3、分布式微服务安全

除了开放系统授权外,OAuth2 还可以应用于现代分布式微服务安全

传统单块应用的安全

【编程开发】之 OAuth2

现代微服务安全

  • 现代微服务中系统微服务化以及应用的形态和设备类型增多,不能用传统的登录方式;
  • 核心的技术不是用户名和密码,而是 token,由 AuthServer 颁发 token,用户使用 token 进行登录。

【编程开发】之 OAuth2

典型的 OAuth2 应用场景

【编程开发】之 OAuth2

4、总结

【编程开发】之 OAuth2

说白了 OAuth2 就是一种解决方案:一种令牌机制,按照一定规则生成字符串,字符串中可包含用户信息。而具体的生产规则可以使用 JWT 工具来生成,OAuth2 仅仅提供这种解决方案而已。

相关文章:

  • 2021-11-27
  • 2021-09-29
  • 2021-09-25
  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2021-12-30
  • 2021-10-31
猜你喜欢
  • 2021-08-07
  • 2021-06-14
  • 2022-12-23
  • 2022-12-23
  • 2021-05-27
  • 2022-12-23
  • 2021-07-30
相关资源
相似解决方案