JWT / 会话 Cookie 身份验证混合

JWT / Session Cookie Authentication Hybrid

我正在寻找有关我们当前项目中仅使用 JWT 的安全问题的一些说明。

基本上它现在是这样工作的:

  1. 用户在身份验证服务中使用用户名+密码进行身份验证

  2. 前端获取 JWT

  3. 前端可以在与后端的通信中使用这个JWT。

但出于多种原因,这似乎不安全,因此我们讨论了这一点,并提出了一些使其更安全的想法:

我们只是想在 Login/Logout 中保持安全,并且在未来可以扩展,以便可能有 X 个其他后端。

对于任何错误表示歉意,英语不是我的第一语言,我很乐意回答有关此的任何问题。

保重。

你说得对,在前端保留令牌存在一些安全问题。当前的最佳做法是尝试将令牌完全排除在浏览器之外。在 Curity,我们将一种可能的解决方案描述为 Token Handler pattern. It adds a bit more complexity to your system but enables you to use secure sessions on the front instead of any tokens. We have provided a few implementations of the components needed by the Token Handler, you can have a look at how to run our complete example here: https://curity.io/resources/learn/token-handler-spa-example/

关于您的第一个想法,如果您想实施黑名单令牌,那么您实际上是在实施会话,最好使用 cookie 和普通的旧 HTTP 会话。 JWE 保护您令牌的内容,但攻击者仍然可以窃取此类令牌并使用它来调用您的 API。