Spring Cloud Gateway + Spring Cloud Security + Keycloak 如何连接

问题描述 投票:0回答:4

他这几天一直在尝试用 Keycloak 连接 s-c-gateway 和 s-c-security。我希望位于网关后面的模块没有 keycloak 配置。 Spring Cloud Security 不支持 Spring Cloud Gateway 吗?

spring security cloud keycloak gateway
4个回答
1
投票

Spring Cloud Gateway github 上有一个关于此的问题 - 简短的总结是目前没有官方支持,但我建议阅读完整的 github 评论


0
投票
您可以在云网关中使用

@EnableWebFluxSecurity,因为它是反应式项目。


0
投票
我知道这是一个有答案的老问题,但现在集成

Spring cloud Gateway

Spring cloud Security
Keycloak
 是可能的,而且很常见。您可以在这里找到一个很好的教程:

https://kunkkali.blogspot.com/2020/10/build-j2ee-micro-services-architecture.html 源代码:
https://github.com/liqili/spring-microservice-oauth2-keycloak-starter


0
投票
在这里查看我的详细答案:

https://stackoverflow.com/a/78476524/1249237


总而言之,您可以通过以下两种主要模式使用 Spring Security 将 Spring Cloud Gateway 与 Keycloak 集成:

  1. OAuth 2.0 客户端(或 OIDC 依赖方 - RP)与 Spring Cloud Gateway:
    设置:添加
  • spring-boot-starter-oauth2-client
     作为依赖项。
  • 配置:在
  • application.yml
     中,在 
    security.oauth2.client
     部分下配置 Keycloak URL 和客户端凭据。
  • 令牌传播:在 Spring Cloud Gateway 路由中使用
  • TokenRelay
     过滤器来传播访问令牌。
  1. 带有 Spring Cloud Gateway 的 OAuth 2.0 资源服务器(或 OpenID 提供程序 - OP):
    设置:包含
  • spring-boot-starter-oauth2-resource-server
     作为依赖项。
  • 配置:在
  • application.yml
    下的
    spring.security.oauth2.resourceserver.jwt
    中将Keycloak定义为JWT颁发者。
  • 安全配置:使用自定义
  • SecurityFilterChain
     在 Spring Security 中实现 JWT 验证。
这两种模式都允许 Spring Cloud Gateway 使用 Keycloak 对请求进行身份验证和授权,处理令牌(以标准 JWT 形式)以实现安全通信。您还可以组合这些模式,让 Spring Cloud Gateway 既充当客户端又充当资源服务器。

© www.soinside.com 2019 - 2024. All rights reserved.