【发布时间】:2019-06-17 08:06:51
【问题描述】:
我正在尝试使用 Spring Boot 在工作流中实现上述架构。
- Web 客户端通过 Zuul 代理向资源服务器(微服务端点)发出请求。
- Zuul Proxy 重定向到 oauth2 服务器进行身份验证。
- 无论请求是否经过身份验证,Oauth2 都会重定向到 Zuul 代理。
- 如果未通过身份验证,Zuul 会使用未经身份验证的响应重定向 Web 客户端。
- 如果经过身份验证,Zull 代理将重定向到请求的微服务端点。
- 微服务端点检查用户是否被授权(用户级访问)访问资源。
- 微服务还可以对其他微服务进行内部休息调用。
- 最后,请求的资源被发送回客户端。
我想确保我遵循正确的工作流程。
我想知道是否有任何解决方案实现了类似的保护微服务 API 的解决方案。
我对以下内容感到困惑:
- 我们如何将用户详细信息传递给微服务,以便微服务可以执行自己的用户授权级别?
- 是否应该将 OAuth2 访问令牌标头传递给每个微服务,以便微服务可以单独验证令牌?
- 每个微服务是否应该使用秘密凭证来验证访问令牌,以使令牌不能沿着请求链伪造?
我知道这是一个有点冗长的问题。但我还没有找到上述架构的合适解决方案。
【问题讨论】:
-
请在此处分享您的发现。我认为这是让微服务协同工作的一种非常好的方式,并且我希望这样做
-
请在此处查看 Zuul 作为 OAuth2.0 客户端:baeldung.com/spring-security-zuul-oauth-jwt
-
@Ananda:如果你成功了,你介意在这里放一些细节吗?
标签: spring-boot oauth-2.0 microservices spring-security-oauth2 netflix-zuul