了解 JHipster 的安全机制:何时使用 JWT、HTTP Session 或 OAuth2 和 OpenID Connect?

Understanding security mechanisms of JHipster: When to use JWT, HTTP Session or OAuth2 and OpenID Connect?

我正在创建一个单体应用程序(类似于电子商务或市场),我担心它是否安全。我了解(广义上)JWT 的工作原理,但不确定 HTTP Session 或 OAuth2 和 OpenID Connect。

何时建议使用这些选项中的每一个?

对于单体,我宁愿推荐 HTTP 会话而不是 JHipster 的 JWT 实现,因为它更安全:在客户端,它使用仅 http 安全 cookie,而 JWT 存储在浏览器的 LocalStorage 中。如果你想通过 运行 多个实例水平扩展你的整体,你将不得不管理会话复制,但 Spring 做得很好。 HTTP 会话是众所周知的,并在 Spring 安全文档中进行了描述。

当您想针对 Google、Facebook 等其他身份提供者进行身份验证时,OAuth2 和 OpenID Connect 会更好……它在微服务架构的上下文中也更有意义。