【问题标题】:Best practice of Spring Security with user details storage in microservices [closed]在微服务中存储用户详细信息的 Spring Security 最佳实践 [关闭]
【发布时间】:2019-12-15 23:54:32
【问题描述】:

在生产环境中使用 Spring Security 存储用户详细信息、角色用户身份验证和微服务授权的最佳实践是什么?

【问题讨论】:

    标签: spring spring-boot spring-security microservices restful-authentication


    【解决方案1】:

    在微服务架构上使用 Spring Security 的最佳实践之一是将 OAuth2 机制与 JWT 令牌一起使用。

    由于微服务是无状态的,JWT 令牌提供了一种识别用户信息的方法。这包括角色、用户名、电子邮件或您可能认为有用的任何其他信息。

    对于这种机制,您需要一个身份验证服务器。您可以使用 Spring Cloud Security 实现您自己的,也可以使用支持 OAuth2 的现有身份管理工具(例如 Keycloak)。

    身份验证服务器可以对用户进行身份验证(使用数据库或活动目录)并向他们提供 JWT 令牌(包含用户信息),客户端将使用该令牌来调用微服务。

    更多关于智威汤逊的信息,请查看this

    每个微服务负责验证传入的令牌。为此,您可以要求身份验证服务器验证令牌,也可以使用 JWK。最后一个类似于认证服务器发出令牌的证书,并向其保存一个额外的请求(验证仅在微服务上完成)。

    这篇博文更详细地解释了这一点:https://ordina-jworks.github.io/microservices/2017/09/26/Secure-your-architecture-part1.html

    如果您不需要微服务来识别用户信息,您可以使用不带 JWT 的 OAuth2。它以相同的方式工作,但使用一个简单的生成令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 2011-01-30
      • 2011-02-22
      • 2020-04-07
      • 2018-04-29
      • 2012-11-13
      相关资源
      最近更新 更多