Oauth2 -客户端凭证流中的长寿命令牌与重新身份验证



我们已经用OAuth2保护了REST服务器,并为我们控制的几个客户端应用程序实现了客户端凭据授权类型。现在我们面临的决定是让令牌长期存在(即它们"永远"过期),还是让客户端经常重新认证(取决于刷新令牌的过期时间)。第一种情况意味着捕获的令牌可能被恶意方使用,第二种情况意味着经常暴露客户端的秘密,然后可以用来获取令牌。

在资源服务器到客户端服务器的身份验证中哪个更安全?如果我们怀疑被盗,令牌和客户端秘密都可以无效。显然所有的通信都是通过https..

目前,我们认为客户端秘密比令牌更强大,因此长期存在的令牌应该更适合这种两条腿的场景。(对于任何三脚授权类型,我们将很快实现,我们更喜欢一个短暂的令牌作为用户会话)。

谢谢你的想法!

根据规范,客户端凭据流只允许不冒其客户端秘密被盗风险的客户端使用:

客户端证书授予类型必须只被机密客户端使用。

因此,如果您将此流与不受信任平台上的应用程序结合使用,则绝对应该重新考虑此决定。

在您的平台是受信任的前提下,无需担心被盗的客户端秘密。然后,您的决定需要权衡攻击者可以使用被盗的访问令牌的时间,以及重新身份验证的额外开销(只有一次调用,但仍然是一个小延迟)。重认证步骤本身与客户端秘密的暴露无关,如果两个参与者都是可信的,并且您正在使用良好的传输层安全性来抵御MITM攻击。

还要注意的是,不建议(也没有必要)在客户端凭证流: 中使用刷新令牌

不应该包含刷新令牌。

相关内容

  • 没有找到相关文章

最新更新