首页 > 解决方案 > Spring Security OIDC 和 JWT 代替 session

问题描述

我们正在考虑实现无状态,即使用 JWT 代替会话。但是 OIDC 和 Spring Security 似乎很棘手。一些博客文章,例如 Spring Lemon[1],建议对 Spring 的几个 OIDC 类进行子类化,并在用户通过身份验证后使用过滤器来发布签名的 JWT,但它们基于旧版本,.oauth2ResourceServer()在安全方面可作为可配置类使用配置。

今天我们的用户使用 OIDC 进行身份验证,但我们也提供 API,因此我们也有 API 用户。在撰写本文时,我们正在重写应用程序以变得更加 RESTful。更多的逻辑会放在前端,后端只会提供几个API。为了进一步简化模型,我们的想法是为 API 和 OIDC 用户使用 JWT 而不是会话。

最好的方法是什么?仍然为最终用户使用会话(并且仅对 API 用户使用 JWT)还是尝试为所有用户使用 JWT 构建无状态应用程序?Spring Lemon 是正确的选择吗?我们是否还应该oauth2ResourceServer在配置类中使用来验证 JWT?

[1] 春柠檬:https ://dzone.com/articles/spring-security-5-oauth-20-login-and-signup-in-stas

标签: springspring-securityjwtopenid-connectspring-security-oauth2

解决方案


推荐阅读