我正在尝试设计一个Analytic服务,在该服务中注册的每个用户的应用程序都需要下载我们的SDK。SDK本身需要与我们的API服务器进行通信。我遇到问题的关键是,我不知道如何为每个应用程序实现正确的身份验证方法,以便能够与我们的API服务器进行通信。
我已经为每个用户的应用程序生成了一个唯一的API密钥,但是我不知道如何处理身份验证过程,因为如果我们假设API密钥是唯一的身份验证因素,那么黑客很容易窃取它。
另一方面,我读到JWT将是最好的情况,但是通过发送API和获得访问令牌有什么不同?现在我应该使用OAuth 2.0还是其他什么的?
任何想法都将不胜感激..。
发布于 2016-04-21 06:07:22
JWT可以过期。(它们应该是定期的,或者是基于某些用户的操作)。然后可以发布一个新的JWT。但是,最终,如果JWT被窃取,并且尚未过期,那么您已经被破坏了。最后,如果您要维护状态,客户端需要保留一些东西,会话cookie、jwt,任何.
我建议您实现一种过期和重新管理API密钥的方法。以下是对最佳实践的一个很好的总结。如何实现API密钥机制
发布于 2015-10-16 20:00:20
我的一位同事今天向我提到了APIMAN (来自RedHat),这似乎正是您所需要的。除了其他有用的特性外,它还有一个身份验证层。
https://security.stackexchange.com/questions/102930
复制相似问题