本文简单的描述出了 OAuth2 工作背景,看完后可以轻松理解 OAuth2 是用来解决什么问题的。

1. 用户有自己的数据

OAuth2 图解

2. 有一个服务器,负责管理用户的数据。这个服务器被称为”Resource Server(资源服务器)“

OAuth2 图解

3. 有一个客户端应用,想要使用用户的数据

OAuth2 图解

4. 资源服务器需要准备一个 API 接口,用来传递用户的数据

OAuth2 图解

5. 客户端应用请求 API 接口,想要用户的数据

OAuth2 图解

6. 资源服务器返回用户数据

OAuth2 图解

7. 如果某个客户端应用心术不正怎么办?

OAuth2 图解

8. 坏客户端应用也请求资源服务器 API

OAuth2 图解

9. 资源服务器也可以正常返回用户数据

OAuth2 图解

10. 结果就是坏客户端拿到了用户数据

OAuth2 图解

11. 我们需要一个机制来保护用户的数据

OAuth2 图解

12. 根据最佳实践,让客户端应用使用 “Access Token(访问令牌)” 比较好。客户端有了 Token 就说明它有了访问用户数据的权限

OAuth2 图解

13. 客户端应用请求 API 时出示自己的 Token 令牌

OAuth2 图解

14. 资源服务器从请求中提取 Token

OAuth2 图解

15. 资源服务器验证 Token 令牌

OAuth2 图解

16. 确认之后,资源服务器返回用户数据

OAuth2 图解

17. 这个机制的前提是客户端得提前拿到 Token 令牌

OAuth2 图解

18. 我们需要有人负责颁发 Token 令牌

OAuth2 图解

19. 谁来颁发 Token 令牌 …

OAuth2 图解

20. 颁发 Token 的角色被称为 ”Authorization Server(授权服务器)“

OAuth2 图解

21. 客户端应用需要与授权服务器打交道了

OAuth2 图解

22. 授权服务器生成 Token 令牌

OAuth2 图解

23. 然后把 Token 颁发给客户端

OAuth2 图解

24. 先暂停,回顾一下,现在有3个角色了 ”授权服务器“、”客户端应用“、”资源服务器“

OAuth2 图解

25. 授权服务器生成 Token

OAuth2 图解

26. 然后颁发给客户端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oj0N1KY1-1591844945922)(https://miro.medium.com/max/2768/1*pFtTGwzbc0TOZJmJ_tWOGQ.png)]

27. 客户端使用 Token 请求资源服务器的 API 接口

OAuth2 图解

28. 资源服务器从请求中提取 Token

OAuth2 图解

29. 验证 Token

OAuth2 图解

30. Token 没问题就返回用户数据

OAuth2 图解

31. 上面的流程中,第一步是授权服务器生成 Token,而实际流程中,生成 Token 之前是需要询问 User 用户的

OAuth2 图解

32. 首先,客户端请求授权服务器,申请一个 Token

OAuth2 图解

33. 授权服务器询问用户,是否给这个客户端权限

OAuth2 图解

34. 如果用户同意 …

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Q4cSJew-1591844945932)(https://miro.medium.com/max/2772/1*_P7YjoHAk5MWEaBCfpiuxA.png)]

35. 那么授权服务器就生成一个 Token

OAuth2 图解

36. 然后颁发给客户端

OAuth2 图解

37. 重点就是这个黄色区域

OAuth2 图解

38. 这块儿是请求 Token、拿到 Token 的过程

OAuth2 图解

39. 这个过程就是 OAuth2 框架所关注的,为其做了标准化定义

OAuth2 图解

小结

以上就是 OAuth2 的工作背景,OAuth2 框架关注的是整个安全认证过程中的 “请求 Token、颁发 Token” 这部分流程。

这块儿有多种方式,OAuth2 定义了4种模式来处理。

这4种模式有点复杂,之后再详述。

翻译整理自

https://medium.com/@darutk/the-simplest-guide-to-oauth-2-0-8c71bd9a15bb

推荐阅读

轻松理解 Kubernetes 的核心概念

开发者必须要了解的架构技术趋势:Service Mesh

Elasticsearch 开箱指南

阿里开源的分布式事务框架 Seata

ZooKeeper 并不适合做注册中心

OAuth2 图解

相关文章:

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