访问和刷新令牌的生命周期
Posted
技术标签:
【中文标题】访问和刷新令牌的生命周期【英文标题】:Lifetime of access and refresh tokens 【发布时间】:2020-02-26 02:14:12 【问题描述】:应用程序旨在供公司用于管理公司间文档。这些文件可以包含有价值的信息,因此它必须是安全的应用程序。我正在使用带有访问和刷新令牌的 Oauth2。访问令牌有效期为 15 分钟,刷新令牌有效期为 1 天。 我还没有找到任何推荐的令牌寿命。
AT 15 分钟和 RT 1 天好吗?如果是,为什么这些值足够好或不够好? 对于必须真正安全的应用,AT 和 RT 的最佳寿命是多少。非常感谢!
【问题讨论】:
【参考方案1】:Gmail 与银行帐户。
我不知道您的业务属于何处。你应该和你的产品团队一起开会,解释会发生什么,让他们决定。如果需要一些尝试和错误才能获得正确的数字,那没关系。
但对于 Gmail,刷新令牌几乎永不过期。我想不出我最后一次必须再次输入我的凭据是什么时候。
对于银行,刷新令牌似乎只有 10 分钟有效,如果您在银行应用程序后台运行,那么您将无法获得新的刷新令牌,因此您会退出。就像我的美国银行应用程序一样。如果我让应用程序保持打开状态,那么应用程序将继续刷新令牌。
显然刷新令牌的过期时间应该比你的平均用户会话时间长。
【讨论】:
所以如果我的应用程序更接近银行...访问令牌应该有哪个生命周期,如果刷新令牌应该设置为 10 分钟? 我发现刷新令牌的生命周期应该是:RT = AT * 2 的生命周期;那么如果我选择 15 分钟作为访问令牌,那么 30 分钟作为刷新令牌就足够了吗? 我理解保密,但 10 分钟刷新时间来阅读多个文档文件是不好的。想想如果你去另一个标签,然后过来看看你向下滚动到的地方已经消失了。我想您的用户将需要比简单的银行支票更多的时间。我发现here 的建议是让你的 AT 是平均会话持续时间的两倍。 对于敏感的东西,我认为刷新令牌不应该超过 1-3 小时(取决于数据的分类或分类方式)。将刷新令牌到期时间视为“用户不与应用程序交互的最大可接受持续时间,但如果用户回来不必再次登录,因为他们可以立即刷新他们的刷新令牌”。对我来说,'RT = AT * 2 的生命周期'是非常严格的。 (一些网站在 30 分钟 - RT 200 天)。但我确实意识到您的数据很敏感。以上是关于访问和刷新令牌的生命周期的主要内容,如果未能解决你的问题,请参考以下文章