Google drive api 令牌暴露-刷新它们?

Google drive api 令牌暴露-刷新它们?,google-drive-api,Google Drive Api,我想知道Google Drive API是否有任何类型的“灾难恢复”系统?例如,在紧急情况下,如果我的应用程序中的令牌暴露,我需要能够重新创建令牌,而无需再次提示每个用户接受/重新接受权限,这样用户的信息就不会泄露。为了给我的用户提供一个安全的环境,我真的需要它 例如,我在Box API中看到它们提供了访问令牌和刷新令牌。每次访问令牌过期时,它们都会告诉您通过刷新令牌请求一个新的令牌,在这种情况下,访问令牌和刷新令牌都会更改。这对我们来说非常理想,因为我们可以运行一个脚本,为我们拥有的每个帐户请

我想知道Google Drive API是否有任何类型的“灾难恢复”系统?例如,在紧急情况下,如果我的应用程序中的令牌暴露,我需要能够重新创建令牌,而无需再次提示每个用户接受/重新接受权限,这样用户的信息就不会泄露。为了给我的用户提供一个安全的环境,我真的需要它

例如,我在Box API中看到它们提供了访问令牌和刷新令牌。每次访问令牌过期时,它们都会告诉您通过刷新令牌请求一个新的令牌,在这种情况下,访问令牌和刷新令牌都会更改。这对我们来说非常理想,因为我们可以运行一个脚本,为我们拥有的每个帐户请求新的令牌,然后将新令牌存储在我们的DB中

问候,, Andrew,刷新令牌用于生成新的访问令牌

但是,如果需要撤销刷新令牌,用户将需要重新验证


但真正的潜在问题是,如果安全令牌被暴露,会发生什么?(提前考虑这一点对你有好处。)

你需要做三件事:

  • 立即撤销代币

  • 立即告诉用户他们的帐户被破坏

  • 确定违规行为已得到纠正后,请用户重新验证

我为什么说你需要这么做

  • 在我看来,你有道德义务告诉他们,攻击者可能已经获得了对他们数据的访问权

  • 在某些地区,您可能有法律义务

  • 他们说您必须立即向用户报告,如果不这样做,您可能会永久失去对API的访问

提前制作多个刷新令牌似乎不是一个好主意:

  • 你认为攻击者只会合作拿走一个令牌

  • 用户需要反复进行身份验证才能生成它们

  • 您无论如何都需要通知用户

注意:我假设您的应用程序正在使用谷歌的,而您没有使用服务帐户

当您首次要求用户授权您的应用程序(通过将其重定向到OAuth同意页面)并包含
access\u type=offline
参数时,您将收到
access\u令牌
refresh\u令牌
刷新\u令牌
在被用户访问其帐户设置页面或您的应用程序调用
撤销
方法撤销之前是有效的。即使您的应用程序稍后收到同一用户的另一个
refresh\u令牌
,以前的refresh\u令牌仍然有效,直到被撤销为止


因此,如果您有理由相信用户的
刷新\u令牌
已被公开,最安全的做法是撤销该令牌并再次将用户发送到OAuth流(提供
批准提示=强制
,以确保您获得另一个
刷新\u令牌
)。

什么是威胁模型?您希望令牌如何公开?这是一个潜在的场景,有人可以访问刷新令牌,我想确保我可以让用户安全地继续工作,而不会再次提示他们授予许可。这是一个非常糟糕的想法。请参见下文。在不重新验证的情况下,无法撤销它并创建新的刷新令牌?这样我就可以创建多个刷新令牌,然后撤销旧的刷新令牌?这将是我建议的场景的理想解决方案,是的,我确实使用OAuth2.0