【发布时间】:2020-04-23 18:41:24
【问题描述】:
我们的堆栈包括以下服务,每个服务都运行在一个 docker 容器中:
- React 中的前端
- 基于Spring boot“resource-service”的后端服务
- 钥匙斗篷
- 其他后端服务(消费者)
前端和消费者服务都使用 REST API 与后端进行通信。 我们使用 Keycloak 作为我们的用户管理和身份验证服务。
我们希望通过为 Web 应用程序和服务流提供服务,将基于 Spring 的服务“resource-service”与 Keycloak 集成:
Web 应用程序 - 基于 React 的前端发送应从“资源服务”获取重定向 302,并发送用户/浏览器登录 Keycloak 站点,然后返回以获取请求的资源。
Server 2 Server coomunication - 需要使用“resource-service”API 的服务器在出现身份验证问题时应该得到 401,而不是重定向/登录页面。
将 Spring 与 Keycloak 集成的选项很少:
- Keycloak Spring Boot 适配器
- Keycloak Spring 安全适配器
- Spring Security 和 OAuth2
我注意到 Keycloak 文档中有一个“仅自动检测承载”,它似乎完全支持这种情况。但 - 有很多集成选项,对于新的 Spring 引导服务,我不确定最好的方法是什么。 另外,我没有找到在哪里配置该属性。
【问题讨论】:
标签: spring spring-security keycloak