Oauth2 - 客户端凭据流中长期存在的令牌与重新认证

时间:2013-01-14 09:22:05

标签: security rest oauth-2.0 access-token 2-legged

我们已使用 OAuth2 保护了我们的REST服务器,并为我们控制的多个客户端应用实施了客户端凭据授权类型。现在我们面临着决定让令牌长寿(即他们过期“永不”)或让客户经常重新认证(取决于刷新)令牌到期)。第一个意味着被捕获的令牌可以被恶意方使用,第二个意味着经常暴露客户机密,然后可以用来获取令牌。

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

完成的

目前我们认为客户端密钥比令牌更强大,因此对于这种双腿情况,长期存在的令牌应该更好。 (对于我们即将实施的任何三条腿授权类型,我们更喜欢用作用户会话的短期令牌)。

感谢您的想法!

1 个答案:

答案 0 :(得分:11)

根据the specification客户端凭据流仅适用于没有冒着客户端密码被盗的风险的客户端:

  

客户端凭据授权类型必须仅由机密客户端使用。

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

在您的平台受信任的先决条件下,无需担心被盗的客户端密钥。然后,您决定权衡攻击者使用被盗访问令牌的时间与重新身份验证的额外开销(仅one call),但仍然是小延迟)。 重新认证步骤本身是一个关于客户密码暴露的问题,当两个参与者都受到信任并且您正在使用良好的传输层安全性来抵御MITM攻击时。

另请注意,客户凭据流使用刷新令牌not recommended(也是不必要的):

  

不应包括刷新令牌。

相关问题