在阅读了http://nordicapis.com/how-to-control-user-identity-within-microservices/一篇文章之后,我一直在尝试实现这样的访问控制方案(值和引用令牌),但是在阅读了GitHub中与Security + OAuth + Zuul相关的多个其他主题和示例之后,我找不到关于如何实现这一点的具体示例。在返回令牌时,涉及JWT的所有示例都会返回用户详细信息,这正是我想要避免的。用户详细信息永远不应该直接到达客户端,而是应该传递给后端服务。教程https://spring.io/guides/tutorials/spring-security-and-angular-js/提供了许多关于如何将应用程序进化成安全应用程序的信息,但是使用了访问令牌,或者提到了通过JWT直接获取用户详细信息的可能性。
这个问题,https://stackoverflow.com/questions/37180375/using-zuul-as-an-authentication-gateway by @phoenix7360 7360,正是我一直试图实现的方法,但它只提供了执行这种微服务安全方法所需的配置的简要概述。请参考这个问题中的图片,以清楚地了解它将如何进行。
我无法完全了解如何配置Zuul预筛选器以及授权服务器的配置应该是什么样子。正如这篇文章和SO问题所述,流程应该是这样的:
外部(HTTPS)
内部(HTTP/S)
注意:如果OAuth服务器指示访问令牌不再有效,则API应该返回一个错误。
ZuulFilter将如何工作?是否需要针对OAuth服务器(例如,通过RestTemplate)发出新请求,或者当前实现是否支持这些方案?对于JavaConfig类,对于OAuth和Zuul,是否需要特定的配置?如果有人知道一个工作的例子,这将是真正有帮助的,并将是很好的未来参考有关这一主题。
我使用Spring (1.4.0-M3) + Spring + Spring (Eureka,Ribbon,Zuul)
我知道这个问题与以前的问题非常相似,如果这不是正确的做法,我很抱歉,但我认为新的线程比在一个旨在解决另一个问题的线程上寻求帮助要好。
提前感谢!
发布于 2018-11-03 07:26:08
JHipster在处理这个问题方面做得很好。如果我想简单地告诉登录过程,首先您要登录,然后及时获取传递给您下面的服务(例如用户名、电子邮件等)所需的所有信息,然后将它们传递给您的微服务。您可以从okta查看下面的链接以获得更多信息,https://developer.okta.com/blog/2018/03/01/develop-microservices-jhipster-oauth。
https://stackoverflow.com/questions/38156213
复制相似问题