spring security client_credentials grant_type - 支持刷新令牌

时间:2017-06-12 20:50:20

标签: spring-security spring-security-oauth2 netflix-zuul spring-oauth2

client_credentials授予类型支持刷新令牌方案吗?

使用access_token授权类型时,如何处理client_credentials到期日期?

我在代理服务(带有EnableOAuth2Sso的Zuul)后面有授权服务和安全服务,它充当来自客户端应用程序的所有请求的网关。

以下是我的流程:

  1. 从客户端应用程序接受请求(rest api)的代理服务(zuul)
  2. 代理服务通过发布client_idclient_secretgrant_typeclient_credentials)来调用授权服务API,并获取access_tokenrefresh_token和来自回复的时间
  3. 代理服务根据zuul路由映射将原始请求路由到受保护的服务。
  4. 此流程运行正常,但查看ClientCredentialsAccessTokenProvider中的代码,我注意到' supportsRefresh'返回false和' refreshToken'方法返回null。这是否意味着当access_token到期时客户端应用程序到代理服务(zuul)的任何后续请求都将失败?

1 个答案:

答案 0 :(得分:3)

client_credentials OAuth授予服务器机器到机器身份验证的需要,因此无需刷新令牌。

结果,在Spring Security OAuth的ClientCredentialsAccessTokenProvider中,supportsRefresh返回false,refreshToken方法返回null。

事实上,您的授权服务器和资源服务器都在同一个地方(这意味着令牌生成相当便宜),非常类似于我们的设置。我建议您只需为访问令牌设置一个短暂的生命周期(如10分钟),并将它们视为自我一次性的,并在每次要触摸安全资源时获取访问令牌。