OAuth2.0 — 客户端模式详解

终于到了最后一个模式的介绍,这个模式就是客户端模式(Client Credentials Grant)。客户端模式指客户端以自己的名义,而不是以用户的名义,向"服务提供商"进行认证。从这个简要的描述中我们就可以知道这种授权场景下,不需要普通用户的参与,客户端从授权服务器获取到 Access Token 令牌后,使用这个令牌从资源服务器获取的资源也都是跟用户没有关联性质的数据。所以呢,这种授权模式应用的场景是 B2B 的服务授权调用,属于企业间数据授权和交互的范畴。对这个模式做个简单了解即可,为什么这么说呢,因为企业间 B2B 的服务授权可采取的方式很多,而本期图文介绍的客户端模式只是其中一种而已,这个模式大家用小脑转个弯就能理解,没有扩展开来的必要了。

 

客户端授权模式

 

令牌颁发的步骤如下:

[A] 客户端向认证服务器进行身份认证,并要求一个访问令牌。

[B] 认证服务器确认无误后,向客户端提供访问令牌。 

 

[A] 步骤中,客户端发出的HTTP请求,包含以下参数:

  • grant_type:表示授权类型,此处的值固定为"clientcredentials",必选项。
  • scope:表示权限范围,可选项。

 

OAuth 2.0 客户端模式

 

[B] 步骤认证服务器向客户端发送访问令牌:

 

OAuth 2.0 客户端模式

 

返回的东西都是咱们熟悉的东西,再解释的话就太侮辱智商了。至此,完结本套图文系列的全部理论部分,我会在视频课程的《 OAuth 2.0 》中讲解部分授权模式的应用,到时在项目中再对没有说明的一些核心内容进行演示和分析。本套图文并未真正结束,后续会补充一些必要的内容。最后寄语诸君:“勤能补拙是良训,一分辛苦一分才,与诸君共勉,感谢各位跟着我这样一个浪子学技术”。

评论区
kobe 2019.03.26 02:27

我倒希望我也是个技术圈的流氓,可惜连做流氓我都不够格。

国营 2019.03.26 03:09

哈哈,我也在成为技术流氓的道路上苦苦挣扎呢

cchealther 2019.03.26 10:16

站长,有没有什么推荐给新人看的书籍~感谢

国营 2019.03.26 11:11

我下来整理一下吧,不知道近些年又出了哪些经典的书,我看过的书太老了,估计都买不到了

cchealther 2019.03.27 06:01

好滴谢谢老哥

沐沐 2019.07.24 02:37

'无限极回复吗?

GTR 2019.08.19 01:47

我怎么就一直没有进步呢?

国营 2019.08.19 02:12

因为大写的懒字和满脑子的杂念

root_shell 2019.10.20 11:21

看要细,练要多

国营 2019.10.20 11:24

哈哈,只要学习的时候勤思考,能做到专注就是上乘的佛法了

yang 2019.12.12 06:45

无限极回复诶

国营 2019.12.12 06:49

被玩残了

CXY老父亲 2021.01.14 05:14

我也来试试

along 2021.05.14 06:42

无限极回复?

国营 2021.05.14 06:59

我真服你了,这有啥好好奇的

梦里花开 2021.11.05 09:44

这个厉害喽

就这样吧 2022.03.22 12:05

看看多少级

不过也是过 2022.08.07 14:15

我是15层了,快来回复我看看一共多少级就显示不出来了……


顺便问下适合做博客,平时记录很多代码的富文本编辑器是什么呀。voyager自带的编辑器写代码不行……


飞向宇宙 2022.08.22 09:51

再来一层

南一楠 2022.12.01 14:16

有多傻层


heibai 2019.12.19 14:32

这里想请教下,B服务器怎么知道A是自己的服务器在访问而不是别的人

国营 2019.12.19 14:38

你还是没理解OAuth,不管A是客户端还是企业间服务器服务的相互调用,A可以是自己,也可以是别人,只要是经过授权的,拥有合法的token就可以访问B提供的服务。B负责验证token是不是自己颁发的,如果不是,就算是自己的客户端或服务器也不能获取服务,token过期了也不能获取服务。

nicheng 2020.03.04 02:48

谢谢老师!再请教您一个问题,有了oauth还用在他的基础上做API数据安全防护吗?比如再加上sign授权码算法之类的设计。

国营 2020.03.04 02:58

当然,OAuth 只是一套授权的验证机制,验证用户身份是否合法,是否可以请求后台服务器的接口,用户对数据的访问权限和数据安全是另外一套机制,依旧由咱们进行控制,根据业务需要项目需要设定保护机制。叫站长莫叫老师,我只是个分享者,不是来搞教育的。

nicheng 2020.03.04 03:05

谢谢站长😄

国营 2020.03.04 03:13

不客气,别把OAuth看得有多高大上,核心本质很简单,就是为用户创建 token(把它当成密码的变种即可,但是使用token可以识别或者获取用户信息),请求接口的时候携带好token后台就可以知道是不是一个合法用户,这个用户有没有权限请求后台服务接口。即便没有 OAuth 这套标准化的机制,咱们自己也可以实现自定义的接口授权机制。

山风 2021.12.07 03:27

有这样一个场景,有一个大的系统A,很多功能模块(b,c,d)。现在把每一个模块独立为单独的系统,A系统,B系统,C系统,D系统。独立后的系统,登录B系统,其他A,C,D系统都自动登录了,这个可以使用passport来做吗,可以的话使用哪种模式合适

2024.06.13 08:39

客户端的认证,有好多种方式,一个比一个安全,不详细介绍一下,太可惜了!

国营 2024.06.13 12:15

抓住根本的就好了,我可能跟大部分人不一样,最核心的东西有了,各种细化的方案都可以在实际的场景中根据需要推导出来。

微信扫码登录