如何配置“ Zuul网关”调用“身份验证服务器”进行令牌验证

时间:2019-03-29 14:48:02

标签: spring-boot jwt netflix-zuul api-gateway

我将“ Zuul”用作基于spring boot的api微服务的api网关。 我还为JWT令牌创建和验证实现了独立的“身份验证服务器”。

我想要实现的是“ Zuul”在允许请求转到任何服务之前调用“ Auth Server”进行令牌验证。

基本流程如下所示

  1. Zuul将仅用作网关用途
  2. 在进行JWT验证时,“ Zuul”将询问“ Auth Server”令牌是否有效
  3. 如果有效,则Zuul将继续执行“下游路由”。否则,请求将照常被拒绝

由于速度,延迟方面的问题,我正在寻找一种做到这一点的聪明方法。 有很多基于“下游微服务路由之前的Zuul预先过滤”的示例。 很难确定哪种方法对我的情况更好。 除了自定义方法之外,还有其他标准方法可以做到这一点吗?

下面是到目前为止我发现的最好的例子。 由于缺乏经验,我真的不知道这种体系结构是否是继续的好选择。

https://github.com/spring-cloud/spring-cloud-netflix/issues/1392#issuecomment-253267241

1 个答案:

答案 0 :(得分:0)

事情是要知道如何设置授权服务器,为此 https://www.baeldung.com/spring-security-zuul-oauth-jwt

https://docs.spring.io/spring-security-oauth2-boot/docs/current/reference/html/boot-features-security-oauth2-authorization-server.html

正确设置后,zuul中的配置并不那么复杂,在aplication.yaml中,您应将其设置为:

security:
  oauth2:
    client:
      clientId: your_clientId
      clientSecret: your_clientSecret
      accessTokenUri: your_accessTokenUri
      userAuthorizationUri: your_userAuthorizationUri
    resource:
      userInfoUri: your_userInfoUri
      preferTokenInfo: true/false