oauth 2.0、JWT、Spring 安全、微服务
Posted
技术标签:
【中文标题】oauth 2.0、JWT、Spring 安全、微服务【英文标题】:oauth 2.0, JWT, Spring security, Micro services 【发布时间】:2020-08-17 00:06:35 【问题描述】:我需要对 Spring Security 的所有流程有所了解。
我已经在同一个 Spring Boot 应用程序中实现了 oauth2 授权服务器和资源服务器。我可以在其中生成 JWT 令牌。此应用程序中的示例 Rest api 是安全的,并且只能通过令牌访问。
我还有另一个 Spring Boot 应用程序需要保护?我该怎么做。我还需要阅读此服务中的令牌以了解用户的角色。
请说明如何实施第二步。
【问题讨论】:
我的建议是将授权服务作为公共服务,以便所有其他需要 JWT 的微服务都可以使用它。您的客户端可以直接调用此授权服务器来获取 JWT,您的服务 1 和服务 2 可以从授权服务器验证 jwt。 【参考方案1】:您可以创建一个模块来实现您的 spring 安全配置。
在这个模块中是使用@EnableWebSecurity
注释注释的类,您可以在其中定义开放路由。我猜你已经为你的示例 rest API 提供了一个这样的类,在步骤 1 中提到了。
现在,必须保护的每一微秒都通过导入这个模块来使用它,例如作为 maven 依赖项。这样,它的 api 就会通过 spring security 自动得到保护。
您的身份验证服务提供一个 jwk 端点,每个微服务都可以通过公钥验证令牌。
【讨论】:
以上是关于oauth 2.0、JWT、Spring 安全、微服务的主要内容,如果未能解决你的问题,请参考以下文章
OAuth 2.0 和 OpenID Connect 中的 JWT 安全性