OAuth2 图解

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

1. 用户有自己的数据

OAuth2 图解_第1张图片

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

OAuth2 图解_第2张图片

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

OAuth2 图解_第3张图片

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

OAuth2 图解_第4张图片

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

OAuth2 图解_第5张图片

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

OAuth2 图解_第6张图片

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

OAuth2 图解_第7张图片

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

OAuth2 图解_第8张图片

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

OAuth2 图解_第9张图片

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

OAuth2 图解_第10张图片

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

OAuth2 图解_第11张图片

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

OAuth2 图解_第12张图片

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

OAuth2 图解_第13张图片

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

OAuth2 图解_第14张图片

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

OAuth2 图解_第15张图片

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

OAuth2 图解_第16张图片

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

OAuth2 图解_第17张图片

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

OAuth2 图解_第18张图片

19. 谁来颁发 Token 令牌 …

OAuth2 图解_第19张图片

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

OAuth2 图解_第20张图片

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

OAuth2 图解_第21张图片

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

OAuth2 图解_第22张图片

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

OAuth2 图解_第23张图片

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

OAuth2 图解_第24张图片

25. 授权服务器生成 Token

OAuth2 图解_第25张图片

26. 然后颁发给客户端

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

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

OAuth2 图解_第26张图片

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

OAuth2 图解_第27张图片

29. 验证 Token

OAuth2 图解_第28张图片

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

OAuth2 图解_第29张图片

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

OAuth2 图解_第30张图片

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

OAuth2 图解_第31张图片

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

OAuth2 图解_第32张图片

34. 如果用户同意 …

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

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

OAuth2 图解_第33张图片

36. 然后颁发给客户端

OAuth2 图解_第34张图片

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

OAuth2 图解_第35张图片

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

OAuth2 图解_第36张图片

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

OAuth2 图解_第37张图片

小结

以上就是 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 图解)