【问题标题】:How API gateway validates access token via introspectionAPI 网关如何通过自省验证访问令牌
【发布时间】:2020-05-26 20:19:40
【问题描述】:

我发现一篇有趣的文章有这个插图:

上面写着:

API 网关通过自省验证所有传入请求的访问令牌

但这意味着什么?

它说网关进入授权服务器并验证令牌(JWT)。 为什么需要这样做?

如果网关有授权服务器的公钥,它可以像每个后端服务一样使用签名检查令牌的有效性,为什么需要自省以及它是如何完成的?

【问题讨论】:

    标签: api security authentication jwt microservices


    【解决方案1】:

    我相信你在看this document

    我从这个 Secure API Gateway 了解到,网关负责introspection,后端服务只会检查令牌签名,安全性不如自省,但仍然是一层安全性。

    必须进行自省以根据Authorization Server 验证令牌信息。
    这更安全,因为系统可以确保收到的令牌不是恶意的、过期的并且来自已知来源。
    RFC 7662 中解释了有关如何完成的详细信息。

    是的,如果网关可以访问证书,它可以验证令牌签名。
    我真的不知道他们为什么选择后端服务器来做这件事,可能是一个项目决定。

    【讨论】:

      【解决方案2】:

      根据您的身份提供者,这两种方式都可以完成,但需要权衡取舍。

      如果您在本地验证令牌,那么是的,它可以使用公钥来执行此操作,这是非常有效的方式,但缺点是如果令牌或签名密钥被撤销,那么您的令牌仍然有效。使用远程检查,您必须承担 http 开销,但这更可靠。

      通常令牌在本地保持短暂和验证。但是,如果您的访问令牌是长期存在的,您的应用程序需要严格的访问控制或库不支持本地验证,那么远程检查它们是个好主意

      【讨论】:

        【解决方案3】:

        API 网关主要用于将传入调用路由到相应的微服务集群。

        除此之外,它还可以起到验证令牌的作用,这样只有有效的流量才会被路由到下游服务器(过滤恶意流量)。

        验证级别可能取决于产品所有者/架构师的决定。它可以像验证内存缓存令牌列表或对声明集、数字签名验证、到期时间、受众声明等进行深度验证一样简单。

        您可以使用 JWT 解码器(如 https://devtoolzone.com/decoder/jwt)查看令牌内的声明集

        【讨论】:

          猜你喜欢
          • 2021-10-04
          • 2018-05-24
          • 2017-01-31
          • 2019-12-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-26
          • 2012-01-26
          相关资源
          最近更新 更多