【问题标题】:Storing access token obtained through client credentials oauth2 flow存储通过客户端凭据 oauth2 流获得的访问令牌
【发布时间】:2019-11-09 10:52:49
【问题描述】:

在机器对机器 oauth2 令牌安全通信的上下文中,我想知道我应该如何将访问令牌存储在后端应用程序中以供进一步使用(直到令牌过期)?

访问令牌通过client_credentials oauth2流从授权服务器获取,用于在资源服务器上进行授权调用(代表客户端)

将访问令牌存储在客户端的最佳做法是什么,以便可以使用它来进一步调用资源服务器,而不是为每次调用请求新令牌?

【问题讨论】:

  • 这表明您的客户确实有一种安全的方式来存储client_secret:那么您可以使用相同的机制来存储访问令牌
  • 是的,客户端是 Java 应用程序,因此它可以将 client_secret 存储在属性文件中

标签: rest security oauth-2.0 authorization


【解决方案1】:

在客户端存储并不是最好的开始方式。但是如果你想这样做,你也应该将令牌添加到带有 CSRF 令牌的安全 cookie 中,因此无法以其他形式提取访问令牌。此外,如果令牌在您认为没问题的时间内未使用,最好设置超时。

【讨论】: