Spring security spring安全客户端\u凭据授予\u类型-支持刷新令牌

Spring security spring安全客户端\u凭据授予\u类型-支持刷新令牌,spring-security,spring-security-oauth2,netflix-zuul,spring-oauth2,Spring Security,Spring Security Oauth2,Netflix Zuul,Spring Oauth2,client\u凭证grant类型是否支持刷新令牌方案 当使用客户端\u凭据授予类型时,应如何处理访问\u令牌到期 我在代理服务(Zuul withenableAuth2sso)后面有一个授权服务和安全服务,它充当来自客户端应用程序的所有请求的网关 以下是我的流程: 一种代理服务(zuul),它接受来自客户端应用程序的请求(RESTAPI) 代理服务通过发布client\u id、client\u secret和grant\u type(client\u凭据)调用授权服务api,并获取acces

client\u凭证
grant类型是否支持刷新令牌方案

当使用
客户端\u凭据
授予类型时,应如何处理
访问\u令牌
到期

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

以下是我的流程:

  • 一种代理服务(zuul),它接受来自客户端应用程序的请求(RESTAPI)
  • 代理服务通过发布
    client\u id
    client\u secret
    grant\u type
    client\u凭据
    )调用授权服务api,并获取
    access\u令牌
    刷新令牌
    ,以及从响应开始的过期时间
  • 代理服务根据zuul路由映射将原始请求路由到受保护的服务

  • 此流工作正常,但查看
    ClientCredentialsAccessTokenProvider
    中的代码,我注意到'supportsRefresh'返回
    false
    ,'refreshttoken'方法返回
    null
    。这是否意味着当
    访问\u令牌
    过期时,从客户端应用程序到代理服务(zuul)的任何后续请求都将失败?

    客户端\u凭据
    OAuth授予服务器机对机身份验证的需要,因此无需刷新令牌

    因此,在SpringSecurityOAuth中,
    supportsRefresh
    返回false,
    refreshtToken
    方法返回null


    事实上,您的授权服务器和资源服务器都在同一个位置(这意味着令牌生成非常便宜),非常类似于我们的设置。我建议您只需为access token设置一个较短的生命周期(如10分钟),并将其视为可自行处置的,并在每次您想要接触受保护的资源时获取access token。

    感谢您的回复。很少澄清。1) 资源服务器和身份验证服务器可能不在同一位置2)在我们的场景中,获取访问令牌的不是资源服务器。我们有一个网关服务(zuul),负责从auth服务器获取access_令牌,并在http头中将其中继到资源服务器。我的问题是,我们的代理服务器应该总是为每个请求获取一个新的访问令牌,还是只有在请求过期时才可以刷新?我希望它会晚一点,但查看ClientCredentialsAccessTokenProvider类,我发现它不受支持。我想的另一个选项是在网关服务中实现逻辑(筛选器),以检查上下文中的访问令牌是否过期,然后使用客户端凭据(客户端id和客户端机密)获取新的访问令牌。@rgv,是的,您应该
    AuthenticationFilter
    来执行这些令牌相关操作。