移动 API 身份验证

信息安全 验证 oauth api
2021-09-03 14:45:30

我正在尝试设计一个 Android 分析服务,在该服务中注册的每个用户的应用程序都需要下载我们的 SDK。SDK 本身需要与我们的 API 服务器通信。我遇到问题的一点是,我不知道如何为每个应用程序实现正确的身份验证方式,以便能够与我们的 API 服务器进行通信。

我已经为每个用户的应用程序生成了一个唯一的 API 密钥,但我不知道如何处理身份验证过程,因为如果我们假设 API 密钥是唯一的身份验证因素,它很容易被黑客窃取。

另一方面,我读到那JWT将是最好的情况,但是通过发送 API 密钥和获取访问令牌又有什么区别呢?现在我应该使用OAuth 2.0还是别的什么?

任何想法,将不胜感激...

2个回答

JWT 可以过期。(它们应该是定期的,或者基于某些用户操作)。然后可以发布一个新的 JWT。但最终,如果 JWT 被盗且尚未过期,那么您就受到了威胁。归根结底,如果您要维护状态,客户端需要保留一些东西,会话 cookie、jwt 等等……

我建议您实现一种方法来过期和重新管理 API 密钥。这是一个很好的最佳实践总结的答案。如何实现 API-Key-Mechanism

我的一位同事今天向我提到了 APIMAN(来自 RedHat),这似乎是您所需要的。它具有身份验证层以及其他有用的功能。