繁体   English   中英

如何为多个spring微服务实现Spring安全

[英]How to implement Spring security for multiple spring microservices

我正在开发一个购物 Web 应用程序,该应用程序具有 Angular 的前端和使用 Spring Boot 中的微服务架构实现的后端。 我有 5 项服务; 3个用于主要业务逻辑(订单服务,工作项服务和用户服务),1个用于服务注册(eureka服务器),1个用于网关(spring cloud gateway)。

现在我想使用用户名和密码身份验证(可以使用用户微服务获取)为所有主要服务实现 Spring 安全性,然后生成 jwt,然后在其他服务中也使用该 jwt。 我不知道该怎么做,但我想出了一个想法,如果我能以某种方式直接阻止对这 3 个服务的所有调用,并且只允许通过 spring 云网关,最后用 spring security 保护网关。 我不知道这是否可能。

如果可能的话,有人可以为此提供合适的资源吗?如果没有,那么有人可以提供一些替代且简单的机制来使用从用户微服务中获取的凭据来保护所有服务吗?

(我听说过 keycloak,但如果还有其他一些好的机制。如果没有,那么请提供一些好的和简单的 keycloak 资源,因为我在 google 上找不到,我也知道设置私有 VPC、子网和除了那些对我来说似乎很复杂和困难,这就是为什么要避免它。)

好像是你的 API 网关在其他微服务前面。 因此,此网关将与 SSO 身份验证服务器通信,之后请求将被拒绝或将被处理。 您可以参考此链接进行深入了解https://spring.io/blog/2019/08/16/securing-services-with-spring-cloud-gateway

此外,本书中还有一些与使用 Keycloak 保护服务相关的章节: Spring Microservices in Action。

另一个来源是我的代码,也许你会发现一些有用的东西https://github.com/kir-ostapchuk/expression-service

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM