首页 > 解决方案 > Spring Boot 2、Cloud Netflix 和用户名/密码认证架构

问题描述

这是一个架构问题。我想实现一个处理两种用户(管理员和客户端)的应用程序。每个角色可以通过以下方式注册:

根据用户的角色,他们每个人都有他有权执行的特定操作。

从技术堆栈来看,我想在 Docker 和 Kubernetes 上使用 Java 8、Spring Cloud Netflix 以及后来的 Docker 和 Kubernetes(以实现自动修复和自动扩展)。

我已经实现了 Eureka 发现、配置服务器、Zuul 网关,并且每个角色都有两个微服务(让我开始使用)。我根本不知道如何处理用户的身份验证/授权,从我看到的 Spring Security 5 不再支持授权服务器,我应该使用 Keycloack?网关应该是授权服务器还是应该创建另一个负责身份验证的组件?我使用什么,如何实现,如何处理我的授权服务器和业务微服务之间的重定向?

我真的找不到使用用户名/密码、社交登录和 Spring Cloud Netflix 以及 Spring Security 5 的合适文档。

标签: spring-securityspring-cloudkeycloakspring-security-oauth2spring-cloud-netflix

解决方案


  1. 为了 api 安全,迁移到#Kubernetes 后,可以使用 Envoy 或类似的解决方案
  2. 对于身份验证和授权,您需要一个身份管理系统(如#Okta 或 PingFederate 或像 #OpenIAM 这样的开源版本),然后使用 Spring 和 OAUTH2 进行集成。

推荐阅读