基于Spring OAuth2 之客户端凭证模式演示

客户端凭证模式

客户端凭证模式(Client Credentials Grant):适用于客户端访问自己的资源的情况,而不是代表用户访问资源。 客户端应用程序使用其自身的凭证(即客户端ID和客户端密钥)直接向身份验证服务器进行身份验证,并获取访问令牌。此授权方式不涉及用户,因为它只允许客户端访问自己的资源。

直白点说就是应用程序之间的认证方式, 而不涉及终端用户。举例来看:
有A, B 两个系统,A系统对外提供REST的服务接口,并且使用OAuth2 认证。 B要调用A系统的接口,就可以使用客户端凭证模式访问A的接口服务。
在实际的应用中, 这种方式广泛应用在企业内部的SOA服务。
在大型的企业内部, 一般会有专门的SOA部门, 将各个系统之间的调用接口统一管理,这样的管理好处主要有:

  1. 可重用性高
  2. 方便监控和管理,比如限流等
  3. 提高兼容性,比如A提供的接口更改了, 下游的调用的部分只需要修改 SOA即可
  4. 安全性更好

在OAuth2的客户端凭证模式流行之前, 使用最广泛的应该是BASIC认证, 当然也可以匿名访问,但是安全性不好。那为什么客户端凭证模式会安全呢?那就要先来看看客户端凭证模式的运作方式了。

  1. 认证服务器给每个客户端分配一个ID和密钥(client_id 和 client_secret)
  2. 客户端使用ID和密钥到认证服务器获取令牌
  3. 这个令牌是有有效期,过期无效。可以重新获取令牌。
    这里的令牌有有效期, 所以增加了安全性。这个机制和实际生活中的

猜你喜欢

转载自blog.csdn.net/oscar999/article/details/131969820