client_credentials
授予类型支持刷新令牌方案吗?
使用access_token
授权类型时,如何处理client_credentials
到期日期?
我在代理服务(带有EnableOAuth2Sso
的Zuul)后面有授权服务和安全服务,它充当来自客户端应用程序的所有请求的网关。
以下是我的流程:
client_id
,client_secret
和grant_type
(client_credentials
)来调用授权服务API,并获取access_token
,refresh_token
和来自回复的时间此流程运行正常,但查看ClientCredentialsAccessTokenProvider
中的代码,我注意到' supportsRefresh'返回false
和' refreshToken'方法返回null
。这是否意味着当access_token
到期时客户端应用程序到代理服务(zuul)的任何后续请求都将失败?
答案 0 :(得分:3)
client_credentials
OAuth授予服务器机器到机器身份验证的需要,因此无需刷新令牌。
结果,在Spring Security OAuth的ClientCredentialsAccessTokenProvider中,supportsRefresh
返回false,refreshToken
方法返回null。
事实上,您的授权服务器和资源服务器都在同一个地方(这意味着令牌生成相当便宜),非常类似于我们的设置。我建议您只需为访问令牌设置一个短暂的生命周期(如10分钟),并将它们视为自我一次性的,并在每次要触摸安全资源时获取访问令牌。