【问题标题】:How to horizontally scale a Spring Security OAuth2 Client?如何水平扩展 Spring Security OAuth2 客户端?
【发布时间】:2020-02-01 03:18:00
【问题描述】:

如果我们使用 oauth2Login() 从 Okta(授权服务器)获取访问令牌,Spring Security OAuth2 Client 使用 HttpSession 存储访问令牌。这将迫使我们只有一个 OAuth2 客户端实例,并且无法在像 Kubernetes 这样的环境中水平扩展。

为了解决这个问题,我在互联网上找到了不同的方法。

  1. 使用隐式流,其中访问令牌在浏览器客户端中获取和维护,这对上述方法不太安全。

  2. 在后端获得访问令牌后,生成一个新的自定义 JWT 令牌,其中复制了所有声明并将其存储在用户的浏览器中。因此,此后的每个后续请求都可以使用该 JWT 令牌进行身份验证。

  3. 使用 Spring-Session 库在多个 OAuth2 客户端实例之间共享 HttpSession,并坚持使用普通的旧 HTTP 会话来存储访问令牌。

什么是更好的方法?

【问题讨论】:

    标签: spring spring-security openid spring-security-oauth2 okta


    【解决方案1】:

    不推荐使用隐式,我们可以使用会话亲和性,这样用户将只能访问已通过身份验证的同一个 pod

    【讨论】:

      猜你喜欢
      • 2019-05-03
      • 2012-10-22
      • 2013-06-20
      • 2014-02-03
      • 2019-04-06
      • 2017-09-17
      • 2020-02-11
      • 2021-03-07
      • 1970-01-01
      相关资源
      最近更新 更多