krakend 如何处理多个 api 键

krakend how to handle multiple api keys

我正在尝试理解 krakend 并将其用作我们系统中的 API 网关。我试图实现的用例之一是使用 apikeys.

这份 krakend (https://www.krakend.io/docs/enterprise/authentication/api-keys/) 文档展示了如何在配置文件中配置几个 api 键。但是,在我的用例中,我可能会向多个用户(假设超过 100 个及以上)颁发 API 个密钥,并且这些密钥是使用 Web 应用程序 GUI 颁发的。

因此,配置 krakend 看起来不可行,因为这意味着每次发出或重新生成新的 api 密钥时,我都必须添加到此配置中。

处理这种情况的最佳做法是什么。我应该绕过 krakend 并让我的应用程序使用数据库管理密钥吗?

参考文档末尾建议的方法是将 api 密钥池创建到一个部分文件中,例如 api-keys.json,这将得到预配置成krakend。这很好,因为它不需要重新启动 krakend。

但是,如果 api 密钥被撤销/无效,我需要通过删除已撤销的密钥来重新创建一个新列表,并将我的数据库与这个新列表同步并重新启动 krakend .

难道就只能这样了吗? 感谢和问候,

API 关键组件是一个 Enterprise-only 功能。查看该组件的功能,您可以在 KrakenD 配置中预加载数千个 API-keys 并随时分配它们。正如您所指出的,如果要扩展密钥池或删除其中一些密钥,则需要重新部署。

如果您想实现密钥的“热管理”,有两种选择(您可以使用插件编码,或者作为企业客户获得):

  • 集成布隆过滤器,以便在必须撤销有效密钥时通知 KrakenD 节点
  • 添加一个管理密钥的简单撤销 http-server 插件。