首页 文章

Spring Cloud Zuul JWT for Value / Reference Tokens

提问于
浏览
16

在阅读文章 How To Control User Identity Within Microservices 后,我一直在尝试实现这样的访问控制方案(值和参考标记),但在经历了与Spring Security OAuth Zuul相关的GitHub中的多个其他主题和示例之后,我找不到具体的例子 . 这可以实现 . 所有涉及JWT的示例都会在返回令牌时返回用户详细信息,这就是我想要避免的 . 用户详细信息永远不应该直接到达客户端,而应该传递给后端服务 . 教程 Spring Security + AngularJs 有很多关于如何将应用程序发展为安全应用程序的信息,但使用访问令牌或提到直接通过JWT获取用户详细信息的可能性 .

这个问题, Using Zuul as an authentication gateway@phoenix7360 ,正是我一直试图实现的方法,但它只是简要介绍了为微服务实现这种安全方法所需的配置 . 请参考这个问题中的图像,以便清楚地了解它将如何发展 .

我无法完全理解应该如何配置 Zuul Pre-Filter 以及Authorization Server的配置应该是什么样子 . 如文章和SO问题所述,流程将如下所示:

外部(HTTPS)

  • 客户端对OAuth2服务器进行身份验证

  • OAuth服务器返回不透明的访问令牌(没有其他信息的UUID)

  • 客户端使用授权标头中的访问令牌向API网关发送请求

  • API网关使用授权标头中的访问令牌向OAuth服务器请求用户详细信息

  • OAuth服务器检查访问令牌是否有效,并以JSON格式返回用户信息

内部(HTTP / S)

  • API Gateway使用用户详细信息创建JWT并使用私钥对其进行签名

  • API Gateway将JWT添加到请求中并将其发送到Resource Server

  • 资源服务器使用API网关的公钥验证JWT

注意:如果OAuth服务器指示访问令牌不再有效,则API网关应返回错误 .

ZuulFilter将如何运作?是否需要针对OAuth服务器发出新请求(例如,通过RestTemplate),或者当前实现是否支持这些方案 . OAuth和Zuul的JavaConfig条款是否需要任何特定配置?如果有人知道一个真正有用的工作示例,并且对于此主题的未来参考将是很好的 .

我正在使用Spring Boot(1.4.0-M3)Spring OAuth Spring Cloud(Eureka,Ribbon,Zuul)

我知道这个问题与之前链接的问题非常相似,如果这不是正确的做法,我道歉,但我认为新的线程比在SO线程上寻求帮助更好,这个线程旨在解决其他问题 . 问题 .

提前致谢!

1 回答

  • 0

    JHipster在处理这个问题上做得很好 . 如果我想简要地告诉登录过程,首先要登录,及时获取传递给以下服务所需的所有信息(例如用户名,电子邮件等),然后将它们传递给您的微服务 . 你可以在okta看到下面的链接了解更多信息https://developer.okta.com/blog/2018/03/01/develop-microservices-jhipster-oauth

相关问题