不创造消费者的香港和JWT

不创造消费者的香港和JWT,jwt,kong,Jwt,Kong,我目前正在使用Kong API网关,我想使用它验证网关上用户的身份验证,并在用户未正确登录时限制对服务的访问。 我有一个身份验证服务,每当用户登录时就会发出JWTs 我现在想与Kong分享JWT机密,并将其用于验证已发布的JWT,以确保需要适当身份验证的服务的安全 我看了一下这个插件: 但这个插件的工作原理似乎与我想要实现的有点不同。为什么我要创造消费者?我希望在我的身份验证服务中只有一个用户数据库,以避免同步的需要。这个插件的设计方法似乎是为了让第三方涉众能够访问我的API 任何提示都将不胜感

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

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

我看了一下这个插件:

但这个插件的工作原理似乎与我想要实现的有点不同。为什么我要创造消费者?我希望在我的身份验证服务中只有一个用户数据库,以避免同步的需要。这个插件的设计方法似乎是为了让第三方涉众能够访问我的API


任何提示都将不胜感激。

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

我问了几个问题,以确认谷歌集团-见

两大亮点:

您是否可以确认,为每个用户创建一个消费者和一个凭证是可以的

不仅如此,这也是推荐的方法:)

一个api有200万消费者,香港会高兴吗?2亿怎么样

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


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

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

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


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

您可以在创建JWT插件时将秘密传递给它:

$curl-X POSThttp://kong:8001/consumers/${consumer_id}/jwt\
-H“内容类型:应用程序/x-www-form-urlencoded”\
--数据“secret=mysecret&consumer\u id=${consumer\u id}”

您对此有什么见解吗?我也处于同样的位置,不幸的是还没有,我还尝试通过gitter与来自香港的人联系,但没有成功。如果我发现了什么,我会在这里给你回复。@Magnus你能按照评论中的建议改变你对正确答案的选择吗?Pranjal Aneja的答案应该标记为正确。香港的文件似乎与你相矛盾“考虑消费者最简单的方法是将他们一对一地映射到用户。然而,这对香港来说并不重要。消费者的核心原则是您可以将插件附加到他们身上,从而定制请求行为。因此,您可能拥有移动应用程序,并为每个应用程序或其版本定义一个消费者。或者每个平台都有一个消费者,例如安卓消费者、iOS消费者等。“我认为这些文档是针对mashape.com的用户编写的,这些用户正在设置调用API的服务,而不是在您的网站上注册使用您正在制作的服务的用户。我同意这应该被标记为正确答案