Spring微服务jwt认证

Posted

技术标签:

【中文标题】Spring微服务jwt认证【英文标题】:Spring microservice jwt authentication 【发布时间】:2019-01-07 06:29:09 【问题描述】:

我一直在尝试构建一个适用于 JWT 的 Spring 分布式应用程序。 Github 仓库 - https://github.com/dhananjay12/spring-microservice-demo

服务说明

product-service : 具有受保护路由的简单下游服务 jwt-resoure-server :当包含在下游服务中时,它会成为一个 rsourceserver,用于提取 jwt 令牌并将其设置在安全上下文中。 eureka-service : 发现服务 zuul-server : 边缘服务器

现在使用 jwt-resoure-server 的 product-service 可以正常工作:

设置zuul和eureka:

但是,如果我从 zuul 服务器点击,我会收到以下错误:

我正在使用 okta 进行身份验证。我不确定,错误来自哪里。是zuul没有传递令牌还是其他地方。

任何帮助将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

我快速浏览了一下。看起来您的网关不是 ResourceServer,因此它不会接受访问令牌。

另外请注意,您不应该将秘密(包括访问令牌)放在 GitHub 或 *** 上。我建议你替换与这篇文章相关的秘密。

【讨论】:

在 zuul 服务器中添加 @EnableResourceServer 做到了。非常感谢。 虽然我必须提供公钥,但我必须通过 okta 提供的 json 对象中的代码来构建它,然后将其粘贴到 application.yml 中。你能推荐一个更简单的方法吗? Okta 的 Spring 集成:github.com/okta/samples-java-spring/tree/master/resource-server 它将为您处理密钥。 遇到另一个问题 - ***.com/questions/51646207/… 有什么建议吗?

以上是关于Spring微服务jwt认证的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud微服务安全实战_6-2_jwt认证之认证服务改造

Spring Cloud微服务安全实战_6-3_jwt认证之网关和服务改造

Spring cloud微服务安全实战-6-5jwt改造之日志及错误处理

使用 JWT 的微服务认证和授权

如何使用 Spring Security 实现具有两级令牌认证的 Spring Boot 微服务?

重学SpringCloud系列八之微服务网关安全认证-JWT篇