【问题标题】:Spring Gateway that generates JWT token生成 JWT 令牌的 Spring Gateway
【发布时间】:2020-03-05 10:21:49
【问题描述】:

我正在尝试使用 spring-cloud 构建网关。如果 JWT 存在,它应该做一些逻辑,并且它不存在,它应该创建它(从头开始)。我有一些来自互联网的例子,他们都在使用 oauth2,我不想要它。 有没有人从网上的一个例子中知道我在说什么。我是 spring-cloud-gateway 和 spring-security 的新手

我已经尝试过 https://spring.io/blog/2019/08/16/securing-services-with-spring-cloud-gateway 示例,但我对所有 oauth 部分感到困惑。

【问题讨论】:

    标签: spring-security jwt spring-cloud-gateway


    【解决方案1】:

    要发布(创建)JWT,您必须验证用户,JWT 已加密签名(由验证者)证明请求是从该用户发送的。

    关注点分离

    网关

    网关关心的是路由请求。并以一种好的方式做到这一点。

    Spring Cloud Gateway 旨在提供一种简单而有效的方式来路由到 API

    身份验证服务

    身份验证服务的关注点是对用户进行身份验证,例如成为唯一可以访问用户密码元数据的服务,并且是唯一可以访问用于签署 JWT 令牌的私钥的服务。

    separation of concern 是这两个组件被设计为两个不同组件的原因。网关不应访问用于签署 JWT 令牌的私钥,因此它应该将未经身份验证的用户重定向到身份验证服务(链接中的单点登录)。

    【讨论】:

    • 我对用户有一些有线要求。我将需要客户端证书进行身份验证。对于每个经过适当身份验证的人,我都必须生成一个令牌。我了解,当用户没有令牌时,他必须被重定向到客户端证书令牌。一旦用户进入系统,客户端希望他的“会话”永远不会过期,因此每次用户连接到系统时,我们都需要延长令牌的过期日期。当我们更新软件时,我们将需要取消他的令牌并重新创建一个新的令牌,以使他能够访问新版本。
    • Out 客户端不希望我们在更新软件时再次要求我们提供客户端证书。所以我看到的唯一解决方案是 API 网关对令牌有一定的控制权,以便撤销令牌并自动重新创建。
    • @Elena 在我看来,客户端证书只是使用身份验证服务身份验证的一种方式,例如而不是密码。所以架构将和我描述的一样。
    • 我担心的是,如果我必须为每个 http 请求更改令牌的过期时间,我需要重定向到对身份验证服务的调用,以便该组件返回正确签名的 JWT新的到期时间。
    猜你喜欢
    • 2018-08-29
    • 2021-07-29
    • 2017-10-03
    • 2020-01-12
    • 2021-10-13
    • 1970-01-01
    • 2018-02-01
    • 2019-11-29
    • 2018-10-18
    相关资源
    最近更新 更多