将传入令牌下游中继到其他服务

时间:2019-03-25 11:11:43

标签: spring-boot oauth-2.0 single-sign-on netflix-eureka

我试图100%了解资源服务器的工作方式,将传入令牌下游中继到其他服务。

我有一个带有spring boot eureka的微服务架构,并针对@EnableAuthorizationServer进行了Bearer身份验证。 我在zuul中将边缘服务与@EnableZuulProxy和@ EnableOAuth2Sso一起用于请求输入,我当时希望将安全性集中化,但是,当然,我不能离开没有安全性的微服务,每个微服务都是@EnableResourceServer。

一切正常。

问题是: 无论是使用指向oauth服务器还是边缘服务的security.oauth2.resource.user-info-uri,该承载令牌始终针对oauth服务器进行验证,即,如果令牌通过10个微服务,则它将验证对oauth服务器令牌10次? 如果令牌有效,是否没有任何办法我不必向oauth服务器请求10次?

1 个答案:

答案 0 :(得分:1)

好的, 对于 Bearer令牌类型,似乎总是有必要在每个资源服务器上根据身份验证服务器进行身份验证。

解决方案是使用JWT令牌。

如以下内容所述: https://developer.okta.com/blog/2018/04/02/client-creds-with-spring-boot#extra-credit-reduce-the-number-of-calls-to-the-authorization-server

我们使用签名的JWT,这意味着您可以在本地对其进行验证,而不是根据每个请求从API服务向授权服务器提出额外的请求。

Diagram JWT

就是这样。