当前位置: 首页 > 知识库问答 >
问题:

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

华项明
2023-03-14

在阅读了如何在微服务中控制用户身份这篇文章后,我一直试图实现这样的访问控制方案(值和引用令牌),但在阅读了GitHub中与Spring Security+OAuth+Zuul相关的多个主题和示例后,我找不到如何实现这一点的具体示例。所有涉及JWT的示例都在返回令牌时返回用户详细信息,这是我想避免的。用户详细信息永远不应该直接到达客户端,而是应该传递给后端服务。教程Spring Security+AngularJs提供了许多关于如何将应用程序发展为安全应用程序的信息,但使用了访问令牌或提到了通过JWT直接获取用户详细信息的可能性。

这个问题(由@phoenix7360使用Zuul作为身份验证网关)正是我一直试图实现的方法,但它只简要概述了为微服务实现这种安全方法所需的配置。请参考这个问题中的图像,以了解它将如何进行。

我无法完全理解Zuul预过滤器应该如何配置,以及授权服务器的配置应该是什么样子。正如本文和SO问题中所述,流程如下所示:

外部(HTTPS)

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

提前感谢!

共有1个答案

柳业
2023-03-14

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

 类似资料:
  • 本文向大家介绍详解SpringCloud Zuul过滤器返回值拦截,包括了详解SpringCloud Zuul过滤器返回值拦截的使用技巧和注意事项,需要的朋友参考一下 Zuul作为网关服务,是其他各服务对外中转站,通过Zuul进行请求转发。这就涉及到部分数据是不能原封返回的,比如服务之间通信的凭证,用户的加密信息等等。 举个例子,用户服务提供一个登录接口,用户名密码正确后返回一个Token,此To

  • 本文向大家介绍SpringCloud Zuul服务功能与使用方法解析,包括了SpringCloud Zuul服务功能与使用方法解析的使用技巧和注意事项,需要的朋友参考一下 Zuul是什么?   Zuul包含了对请求的路由和过滤两个最主要的功能:     其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚

  • 我试图用PHP为两个主题相连的领域创建一个简单的SSO系统。 因此,我想知道是否可以将包含用户用户名的签名JWT令牌从域a存储到本地存储。然后使用来自域B的相同密钥来验证JWT,这将导致成功的身份验证。 我在谷歌搜索了一些答案,我发现其中一些包含了一个中间认证域,它将负责认证。但我只想把我有的两个域联系起来。 谢了。

  • 本文向大家介绍浅谈SpringCloud之zuul源码解析,包括了浅谈SpringCloud之zuul源码解析的使用技巧和注意事项,需要的朋友参考一下 zuul各版本实现存在一些微小的变化,总的实现思想未改变,以spring-cloud-netflix-core-1.3.6.RELEASE为例 一、zuul的重要的初始化类 org.springframework.cloud.netflix.zuu

  • 本文向大家介绍SpringCloud网关组件zuul实例解析,包括了SpringCloud网关组件zuul实例解析的使用技巧和注意事项,需要的朋友参考一下 1.引入如下依赖 2.启动类添加如下注解 @EnableZuulProxy 原先访问商品服务如下: 通过网关访问:将访问地址改为网关地址,并添加商品服务的服务名称如下: 即完成统一完成由网关进行发送 同时可以在启动类中添加自定义路由映射 这样就

  • 我试图实现微服务架构后端api服务器的使用Spring Cloud Dalston.SR4将被移动/网络应用程序使用。 API网关 下面是网关微服务的配置 应用yml 身份验证服务 通过这个设置,我能够从uaa/oauth/token服务生成访问令牌。我可以使用相同的令牌调用uaa/用户服务endpoint,甚至可以直接调用其他微服务(比如用户服务)。 但是当我使用前面生成的令牌通过网关调用用户服