API 保护 - JWT、HMAC 签名与 OAuth

Mis*_*r_L 6 api hmac oauth-2.0 websecurity

假设您正在设计一个新的 API。API 的使用者是一个在后台定期发送请求的移动应用程序,但您也期望其他使用者,例如 Web 应用程序或服务器。

现在让我们考虑两种方案:

在第一个方案中,您创建一个接受您的用户名和密码的登录端点,并作为响应发出一个短暂的 JWT。

在方案二中,API 的客户端使用 HMAC 签名来签署每个请求,就像 Amazon 保护他们的 API一样

您如何比较两者?似乎第二种方案对于 API 客户端来说计算量更大,但是在这两种方案中,这一切都归结为您必须在设备或服务器上保存的一个密钥/密码。它如何使第二个方案更安全?

那么你有第三种方案,即 OAuth2,但如果没有第三方参与,它有意义吗?

谢谢。