首页 > 解决方案 > 使用spring在微服务中进行身份验证

问题描述

我想重构一个整体的 Spring Boot 应用程序,基本上是一个为客户提供登录和功能的 Web 应用程序。我们已经有一个安全实现,它使用存储为 cookie 的会话 id,但我对此一无所知,而且我对这个主题完全陌生。由于独立的身份验证服务,JWT 似乎是微服务的更好解决方案。

所以我的问题是:

标签: spring-bootauthenticationspring-securityjwtmicroservices

解决方案


微服务中不建议使用典型的用户会话。您应该使用无状态架构和令牌(存储在数据库或 JWT 中的令牌)。

最好使用Spring Boot OAuth2

您应该使用 Spring Boot 实现授权服务器和资源服务器。

授权服务器:

  1. 选择令牌存储方式(JWT、Jdbc、...)
  2. 配置客户端详细信息
  3. 为用户信息添加 RESTful Api 或启用 /oauth/check_token api。(由资源服务器调用)

资源服务器:

  1. 在 Spring Boot OAuth2 属性中设置 user-info-uri 或 token-info-uri。
  2. 扩展ResourceServerConfigurerAdapter用于保护 url 映射的类。

推荐阅读