我有一个带有 4 个微服务、eureka 服务器和一个集中式 API 网关的 spring-boot 应用程序。
所有外部流量都通过我的 API 网关到达我的微服务。
我的 API 网关 (Zuul) 正在验证和验证 JWT 令牌。
JWT 令牌由我的微服务之一在用户登录后生成(用户微服务),该令牌包含用户 ID 及其角色/权限。
现在,我想对网关以外的微服务中存在的方法实施基于角色的安全性。
我尝试使用,@PreAuthorize但它在网关之外不起作用(显然,为了使其工作,我必须SecurityContextHolder在我的微服务中设置一个 Spring Security 身份验证对象并用权限填充它)。
那么是否有任何解决方案可以实现这种安全性?
在微服务架构中设置安全性的最佳设计是什么?
API 网关级别的身份验证和微服务级别的授权?
在 API 网关级别验证 JWT 后,我是否需要在微服务中使用 spring security 或仅传递角色(将它们附加到请求中),例如创建我自己的注释并使用 Spring AOP 处理授权?
spring-security spring-boot microservices spring-cloud netflix-zuul