阅读文章 How To Control User Identity Within Microservices 后,我一直在尝试实施此类访问控制方案(价值和参考代币),但经过多个其他GitHub中与 Spring Security + OAuth + Zuul 相关的主题和示例,我找不到如何实现这一目标的具体示例。所有涉及 JWT 的示例都会在返回令牌时返回用户详细信息,这就是我想要避免的内容。用户详细信息永远不应该直接到达客户端,而应该传递给后端服务。教程 Spring Security + AngularJs 有很多关于如何将应用程序发展为安全应用程序的信息,但使用访问令牌或提到获取用户的可能性详情直接通过 JWT 。
@ phoenix7360 这个问题 Using Zuul as an authentication gateway ,正是我一直试图实施的方法,但它仅提供了为微服务执行此类安全方法所需的配置的简要概述。请参考这个问题中的图像,以便清楚地了解它将如何发展。
我无法完全了解应如何配置 Zuul Pre-Filter 以及Authorization Server的配置应该是什么样子。正如文章和SO问题所述,流程将是这样的:
外部(HTTPS)
内部(HTTP / S)
注意:如果OAuth服务器指示访问令牌不再有效,API网关应返回错误。
ZuulFilter如何工作?是否需要针对OAuth服务器发出新请求(例如,通过RestTemplate),或者当前实现是否支持这些方案。 OAuth和Zuul的JavaConfig条款是否需要任何特定配置?如果有人知道一个真正有用的工作示例,并且对于此主题的未来参考将非常有用。
我正在使用Spring Boot(1.4.0-M3)+ Spring OAuth + Spring Cloud(Eureka,Ribbon,Zuul)
我知道这个问题与以前链接的问题非常相似,如果这不是正确的做法,我道歉,但我认为新线程比在SO线程上寻求帮助更好解决另一个问题。
提前致谢!
答案 0 :(得分:0)
JHipster在处理此问题方面做得很好。如果我想简单介绍一下登录过程,请先登录,然后获取要传递给以下服务的所有信息(例如用户名,电子邮件等),然后再将其传递给微服务。 您可以从okta看到下面的链接以获取更多信息 https://developer.okta.com/blog/2018/03/01/develop-microservices-jhipster-oauth