Spring security 春云+;祖尔+;价值/参考标记的JWT
在阅读了这篇文章之后,我一直在尝试实现这样的访问控制方案(值和引用令牌),但是在阅读了GitHub中与Spring Security+OAuth+Zuul相关的多个其他主题和示例之后,我找不到具体的例子来说明如何实现这一点。所有涉及JWT的示例都会在返回令牌时返回用户详细信息,这是我想要避免的。用户详细信息不应直接到达客户端,而应传递给后端服务。教程提供了大量关于如何将应用程序发展为安全应用程序的信息,但使用了访问令牌或提到了通过JWT直接获取用户详细信息的可能性 因此,这个问题,@phoenix7360,正是我一直试图实现的方法,但它只提供了执行这种微服务安全方法所需配置的简要概述。请参考本问题中的图片,以了解其进展情况 我无法完全理解应该如何配置Zuul预过滤器,以及授权服务器的配置应该是什么样子。正如文章和SO问题中所述,流程如下: 外部(HTTPS)Spring security 春云+;祖尔+;价值/参考标记的JWT,spring-security,oauth,spring-boot,jwt,netflix-zuul,Spring Security,Oauth,Spring Boot,Jwt,Netflix Zuul,在阅读了这篇文章之后,我一直在尝试实现这样的访问控制方案(值和引用令牌),但是在阅读了GitHub中与Spring Security+OAuth+Zuul相关的多个其他主题和示例之后,我找不到具体的例子来说明如何实现这一点。所有涉及JWT的示例都会在返回令牌时返回用户详细信息,这是我想要避免的。用户详细信息不应直接到达客户端,而应传递给后端服务。教程提供了大量关于如何将应用程序发展为安全应用程序的信息,但使用了访问令牌或提到了通过JWT直接获取用户详细信息的可能性 因此,这个问题,@phoeni
提前谢谢 JHipster在处理这个问题上做得相当好。如果我想简单地告诉您登录过程,首先您要登录,及时获取您需要传递给以下服务的所有信息(如用户名、电子邮件等),然后将它们传递给您的微服务。 有关更多信息,请参见okta的以下链接
如果您想要UAA,我认为zuul不需要检查令牌和调用AuthorizeServer。但是,如果您没有UAA,我认为Api网关是AuthorizeServer。但是在服务到服务调用中,需要OAuth2RestTemplate,该模板在调用服务方法之前获取令牌。您为什么要在网关中执行此操作?如果您想检查传入JWT的有效性(以防万一),我完全理解,但是您的服务还需要使用(并验证)令牌。但总的来说,你的流量看起来不错。除了一件事:应该首先验证带有Oauth访问令牌的请求,然后在成功后,您可以创建JWT并对其签名,如果令牌不正确,则抛出错误。还需要考虑其他服务的端点来检索验证签名所需的公钥。