【问题标题】:Kong and JWT without creating consumers没有创建消费者的 Kong 和 JWT
【发布时间】:2016-07-03 18:29:16
【问题描述】:

我目前正在使用 Kong API 网关,我想用它来验证网关上用户的身份验证,并在用户未正确登录时限制对服务的访问。 我有一个身份验证服务,只要用户登录,它就会发出 JWT。

我现在想与 Kong 共享 JWT 机密,并将其用于验证已发布的 JWT,以保护需要适当身份验证的服务。

我看过这个插件:https://getkong.org/plugins/jwt/

但似乎这个插件的工作方式与我想要实现的有点不同。为什么我必须创建消费者?我希望我的身份验证服务中只有一个用户数据库,以避免需要同步。这个插件的方法似乎是为让第 3 方利益相关者访问我的 API 而设计的。

任何提示将不胜感激。

【问题讨论】:

  • 您对此有什么见解吗?我也是这个位置
  • 不幸的是还没有,我也尝试通过 gitter 联系来自 kong 的人,但没有成功。如果我发现了什么,我会在这里回复你。
  • @Magnus 您能否按照 cmets 的建议更改正确答案的选择? Pranjal Aneja 的答案应标记为正确。

标签: jwt kong


【解决方案1】:

在我看来,Kong 的 JWT 插件的设计不想与您分享 JWT 秘密 - 它想完全拥有 JWT。您确实必须为每个用户创建一个消费者,并让 Kong 管理它。

我问了几个问题以确认 Google 群组 - 请参阅 https://groups.google.com/forum/?fromgroups#!topic/konglayer/XHnVEGoxZqo

两个亮点:

您能否确认可以为每个用户创建一个消费者和一个凭据?

不仅没关系,而且这是推荐的方式:)

Kong 会乐于拥有 200 万消费者使用一个 API 吗? 2亿呢?

从技术上讲,这应该不是问题,我建议您设置一个 POC,您可以在其中试验更多用户,以优化 Kong 和数据存储之间的连接并确保我们正确调整所有内容。

【讨论】:

    【解决方案2】:

    Riley 给出的答案在实施上是正确的,但这不是 Kong 消费者的预期用途。

    kong 中的消费者是使用 API 的应用程序。因此,除非您有多个供应商使用您的应用程序/网络服务,否则我建议您创建一个消费者。

    您可以为该消费者创建多个密钥和密钥对(JWT 凭据)。使用用户密钥和密钥为用户创建 JWT。将此密钥和机密与您的用户 ID 和其他详细信息一起存储在您当前的数据库中。使用这些创建您的 JWT 并将 JWT 返回给用户。

    您可以在创建 JWT 时将任何其他要作为声明附加的内容添加到 JWT。您可以在 Kong 中为这些索赔创建支票。因此,当您收到对任何 API 以及这些 JWT 的调用时,Kong 将检查 JWT(以及所有声明)的有效性,然后才允许访问 API。

    【讨论】:

    • Kong 文档似乎与您相矛盾“考虑消费者的最简单方法是将它们一对一地映射到用户。然而,对于 Kong 这并不重要。消费者的核心原则是您可以将插件附加到它们,从而自定义请求行为。因此,您可能有移动应用程序,并为每个应用程序或它的版本定义一个消费者。或者每个平台都有一个消费者,例如 android 消费者,iOS 消费者,等等。” getkong.org/docs/0.11.x/auth/#consumers
    • 我认为这些文档是为 mashape.com 的用户编写的 - 设置将调用 API 的服务的用户,而不是在您的网站上注册以使用您的服务的用户'重新制作。我同意这应该被标记为正确答案
    【解决方案3】:

    您实际上可以在创建 JWT 插件时将其传递给它:

    $ curl -X POST http://kong:8001/consumers/${consumer_id}/jwt \ -H "Content-Type: application/x-www-form-urlencoded" \ --data "secret=mysecret&consumer_id=${consumer_id}"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-24
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      相关资源
      最近更新 更多