首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring + Zuul + JWT用于值/引用令牌

Spring + Zuul + JWT用于值/引用令牌
EN

Stack Overflow用户
提问于 2016-07-02 03:29:10
回答 1查看 8.9K关注 0票数 25

在阅读了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)

  1. 客户端通过OAuth2服务器进行身份验证
  2. UUID服务器返回不透明访问令牌(没有其他信息的OAuth )
  3. 客户端使用授权头中的访问令牌将请求发送到API网关
  4. API使用授权头中的访问令牌向OAuth服务器请求用户详细信息
  5. OAuth服务器检查访问令牌是否有效,并以JSON格式返回用户信息

内部(HTTP/S)

  1. API网关创建一个包含用户详细信息的JWT,并使用私钥签名
  2. API网关添加JWT请求并将其转发给资源服务器
  3. 资源服务器使用API网关的公钥验证JWT

注意:如果OAuth服务器指示访问令牌不再有效,则API应该返回一个错误。

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

我使用Spring (1.4.0-M3) + Spring + Spring (Eureka,Ribbon,Zuul)

我知道这个问题与以前的问题非常相似,如果这不是正确的做法,我很抱歉,但我认为新的线程比在一个旨在解决另一个问题的线程上寻求帮助要好。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-11-03 07:26:08

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38156213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档