Rom*_*ert 3 spring-security-oauth2 keycloak
我有一个 Spring boot REST API,由 Keycloak 和 Spring Security 保护。
我找不到是否有一种方法可以防止每个请求进行令牌内省(即短期缓存内省结果)。每次我访问 API 时,都会在 Keycloak 上检查令牌,这对性能来说并不是很好:(
感谢您的任何建议。
这是您在使用不透明令牌(需要内省)时所做的权衡。
使用不透明令牌:
权衡是您需要在每个请求上检查授权服务器以确保令牌没有失效。
使用智威汤逊:
JWT 的性能优势所换取的是它不能失效,只能过期。
所以,这并不是你的问题,而是你问的是性能,而 JWT 是解决不透明令牌性能影响的一种非常常见的方法。
您可能还会问自己,是否需要为应用程序中的每个路径提供不透明令牌的额外安全优势。您可以对某些路径使用 JWT 并检查授权服务器是否有更高安全性的路径?
不管怎样,你问的是缓存。是的,Spring Boot 会为您发布一个实例OpaqueTokenIntrospector,您可以使用缓存的实例覆盖该实例:
@Component
public class CachingOpaqueTokenIntrospector
implements OpaqueTokenIntrospector {
private final NimbusOpaqueTokenIntrospector introspector =
// ... construct
@Override
public OAuth2AuthenticatedPrincipal introspect(String token) {
// call delegate introspector and cache
}
}
Run Code Online (Sandbox Code Playgroud)
例如,您可以在方法@Cacheable上使用注释。introspect
| 归档时间: |
|
| 查看次数: |
6011 次 |
| 最近记录: |