Oauth2系列5:客户端凭据模式

传送门

Oauth2系列1:初识Oauth2

Oauth2系列2:授权码模式

Oauth2系列3:接入前准备

Oauth2系列4:密码模式

在前面几节,对oauth2有了一个初步概念。这里重点讨论下客户端凭据

猝不及防的热

这几天真的有点热,又是在顶楼,更是热上加热。又舍不得开空调,只得干熬着。就像之前很火的一首歌岁月时脑里唱着

是让人猝不及防的东西

征不过朝夕

有念着往昔

热不会放过任何人

不由得记得刚毕业时,和同学合租在拱墅区南霸的农民房里,也是顶楼,没有空调,晚上热的受不了,就把床立起来,睡地上。还是热,大半夜上顶楼打地铺。

时间是让人猝不及防的东西

征不过朝夕

有念着往昔

时间不会放过任何人

年轻的时候真好!!!那时候虽什么都没有,但也没有现在的种种焦虑,身体好,体力好,做事有激情,更好的是有一个虽分隔千里,现在还在联系的朋友!

容我滥情了一把

什么是客户端凭据模式

在前面介绍过授权码模式密码模式这2种模式,客户端凭据模式也是oauth2的4种标准协议之一

客户端凭证(client credentials)

最后一种方式是凭证式(client credentials),适用于没有前端的命令行应用,即在命令行下请求令牌。

应用场景

客户端凭据模式主要应用于后端系统之间需要直接通信,但是没有用户参与的场景。比如某些开放平台,允许注册应用获取一些平台公共资源,比如平台的介绍信息,注册应用本身的信息,这些理论上是不需要用户进行授权的,而且也跟用户没有归属关系,这个时候就可以使用此模式

客户端凭据模式的目的,最终还是获取授权的令牌:如果每次都是拿着凭据来通过调用 Web API 的方式,来访问资源信息等,在调用这么多 API 的情况下,无疑增加了敏感信息的攻击面。如果是使用了 token 来代替这些“满天飞”的敏感信息,不就能很大程度上保护敏感信息数据了吗?这样,客户端只需要使用一次凭据数据来换回一个 token,进而通过 token 来访问资源数据,以后就不会再使用凭据了。

 客户端凭据模式流程

客户端凭据模式的流程其实跟密码模式相似,整个流程可以归纳为一种步骤:第三方系统通过凭据获取令牌。那么对于系统接口设计来说,是不是一个API接口就可以满足呢?

其实是可以的,比如可以如下定义接口:

URL:http://oauth.x.com/token

请求方式:POST

请求参数:

字段说明
grantTypeclient_credentials,固定值,表示客户端凭据模式
clientId客户端 ID(client ID)
clientSecret客户端密钥(client secret)

返回参数:

{ 
"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"scope":"SCOPE"
}

  • 这个接口一般是从后端发起POST请求
  • 出于安全,一般需要设置成HTTPS协议 
  • 这里面还要讨论一下,对于返回的token数据结构,对于刷新令牌来说,不是必要的,因为本身就是API接口调用,客户端可以随时调用,且不需要用户参与,所以refresh_token不一定要生成返回

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security的OAuth2支持四种授权模式,其中一种是密码模式(password grant type)。密码模式是指客户端(也就是应用程序)使用用户的用户名和密码直接向OAuth2服务器请求访问令牌(access token)。 密码模式的使用场景比较特殊,因为它需要客户端直接持有用户凭据。通常情况下,OAuth2更多地是用于第三方应用程序访问受保护的资源,而不是直接访问用户的凭据。因此,在使用密码模式时,需要特别注意安全问题。 以下是使用Spring Security实现密码模式的简要步骤: 1. 配置OAuth2客户端信息:在Spring Security配置文件中,使用`ClientDetailsServiceConfigurer`配置客户端信息,包括客户端ID、客户端密码等。 2. 配置OAuth2授权服务器:使用`AuthorizationServerConfigurer`配置OAuth2授权服务器,包括令牌存储、授权类型等。 3. 配置资源服务器:使用`ResourceServerConfigurer`配置资源服务器,包括受保护的资源、访问规则等。 4. 在客户端中请求访问令牌:客户端通过向授权服务器发送POST请求,包括用户名、密码等信息,请求访问令牌。 5. 使用访问令牌访问受保护的资源:客户端使用访问令牌访问受保护的资源。 以上是使用Spring Security实现密码模式的一般步骤,具体实现可能会因为不同的业务需求而有所不同。需要注意的是,密码模式需要客户端直接持有用户凭据,因此需要特别注意安全问题,确保用户的凭据不会被泄露。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值