如何通过 API 网关配置对 eureka 客户端的 API 请求

Posted

技术标签:

【中文标题】如何通过 API 网关配置对 eureka 客户端的 API 请求【英文标题】:How to configure API request to eureka client through API gateway 【发布时间】:2020-04-20 23:14:17 【问题描述】:

按照本指南:https://medium.com/omarelgabrys-blog/microservices-with-spring-boot-intro-to-microservices-part-1-c0d24cd422c3

不知道如何配置请求必​​须通过api网关?

例如,如果我直接调用 eureka 客户端。我的请求标头中不需要 jwt 身份验证。如何配置所有请求必须转发到 api 网关以验证身份验证。而且只有eureka server发现的eureka客户端请求不需要通过api网关?

请帮帮我!

【问题讨论】:

【参考方案1】:

每个微服务都控制自己的访问策略。默认情况下,Spring Boot 要求所有请求都经过身份验证。微服务可以通过提供 ResourceServerConfigurer 类型的 bean 并覆盖 configure 方法来更改此策略,但这仅在您不需要身份验证时才需要。

    public void configure(HttpSecurity http) 
        // This is the default behavior
        http.authorizeRequests().anyRequest().authenticated();
    

然后您指示 API 网关将不记名令牌传递给您的微服务。这在 API Gateway 的配置中进行控制。假设您使用 YAML 进行配置,您应该在配置中有一个条目来指定如何处理安全性。

proxy:
  auth:
    routes:
      my-route-name: oauth2

其中my-route-name 是来自zuul 条目的路由

zuul:
  routes:
    my-route-name:
      path: /my-path
      service-id: my-service

【讨论】:

感谢您的帮助。我认为您的想法看起来像 Spring Boot 中的 SSO,对吧?你能给我一个例子或git吗? 这可能对baeldung.com/spring-security-zuul-oauth-jwt有帮助

以上是关于如何通过 API 网关配置对 eureka 客户端的 API 请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在微服务和API网关架构中对不同的配置文件进行身份验证和授权

如何在微服务和 API 网关架构中对不同的配置文件进行身份验证和授权

通过 Eureka、ribbon 进行负载平衡?

技术漫谈 | 在Kubernetes下实现API网关

Spring Cloud 网关重定向

Star Entertainment Group如何通过Axway API网关增加收入吸引更多客户,着眼未来战略布局