JSON Web Tokens& OAuth的

时间:2016-08-03 07:47:16

标签: oauth oauth-2.0 jwt

我刚刚开始学习身份验证和授权,并尝试了解REST API的JWT和OAuth。

我一直在做一些研究,但有几点仍不清楚:

JWT

  • 令牌是否包含所有信息以验证请求是否安全?换句话说,在服务器上生成令牌时,是否需要将其与用户名/ ID一起保存在数据库中以验证每次对API进行的调用?
  • JWT over HTTP是否足够安全,或者是否需要HTTPS?

的OAuth

  • 我理解它的方式,我可以使用OAuth将授权委托给第三方应用程序(Facebook作为示例)。如果身份验证成功,我会从身份验证调用中收到一个令牌。然后,我可以使用此令牌传递对我的API的所有调用,因为令牌是由受信任的第三方应用程序(Facebook)发出的。我可以解码令牌,验证令牌是否安全有效,然后继续我在API中需要做的任何事情。换句话说,我完全外包了身份验证,无需在某处存储用户名和密码。这是对的吗?

1 个答案:

答案 0 :(得分:1)

  

令牌是否包含所有信息以验证请求是否安全?

hhhhh.ppppp.sssss这样的JWT的第三部分是使用服务器私钥通过 h eader和 p 令牌的ayload执行的数字签名。服务器将检测到标头,有效负载或签名的任何更改并拒绝令牌

  

换句话说,在服务器上生成令牌时,是否需要将其与用户名/ ID一起保存在数据库中,以验证对API进行的每次后续调用?

不,因为数字签名可以保护内容。您可以安全地信任令牌中的任何数据

  

JWT over HTTP是否足够安全,或者是否需要HTTPS?

JWT可能包含隐私敏感信息,并且为了防止此类信息泄露给非预期方,只能通过加密通道(https)传输。如果希望防止向客户披露某些信息,则应对JWT进行加密。

  

[OAuth]换句话说,我完全外包了身份验证,无需在某处存储用户名和密码。这是对的吗?

是的,您是对的,OAuth允许用户在不泄露凭证的情况下授权第三方应用