刷新令牌是否链接到Web应用程序客户端ID /客户端密钥?

时间:2016-01-09 15:13:24

标签: security oauth access-token

使用刷新令牌时,我有一个关于安全性的问题。假设我有一个可以访问用户谷歌日历的网络应用程序。因此,我需要执行以下步骤:

  1. 从Google获取客户端ID和客户端密码。
  2. 我的网络应用程序的用户允许他的日历。
  3. 我获得了刷新和访问令牌。
  4. 我将访问令牌发送到Calendar API并访问用户的日历。
  5. 我可以使用刷新令牌刷新访问令牌,刷新令牌保存在数据库中。

    如果有人访问我的数据库会发生什么情况,或者通常会有我的某个用户的刷新令牌? 攻击者可以使用刷新令牌访问日历,还是链接到我的客户端ID和客户端密钥的令牌?当我的Web应用程序通过OAUTH2 API使用我的客户端ID和客户端密钥进行身份验证时,是否只能访问用户日历?

    谢谢

2 个答案:

答案 0 :(得分:0)

是的,它/不应该使用与发布的客户端不同的刷新令牌。

刷新令牌通常是不透明的字符串,但在发行者中,它们应该链接到经过身份验证的客户端。这就是为什么您需要在使用刷新令牌时发送您的客户端并保密。

答案 1 :(得分:0)

假设客户端能够与攻击者保持client_idclient_secret,则常规方法是以相同方式处理和存储refresh_token。因此,即使从技术上讲,如果没有客户端凭证也无法获得新的访问令牌,实际上攻击者将获得客户端凭据的保留方式与获取刷新令牌的方式相同。