【问题标题】:express-gateway API key management快速网关 API 密钥管理
【发布时间】:2022-01-26 19:12:38
【问题描述】:

我有 API 后端,它将被不同的消费者使用,比如我们自己的公司网站,甚至其他网站也可以使用我们的 API,但有一定的配额/限制,对于这个范围管理,我们将使用 express-gateway(eg ),但这不是我使用 express-gateway(eg) 的唯一原因。现在来到我的问题/错过理解,对于我们自己的网站,我们可以使用例如命令创建 api-key 和用户凭据。但是对于希望使用我们的 api 的其他用户,我不希望他们联系我进行此集成,而是他们应该能够使用某些工具自己创建用户凭据和 API 密钥(让我们称之为密钥管理)由我们提供。在这里,我被困在如何提供一个网络平台或任何其他机制,用户可以在其中创建帐户,然后为他们自己的网站创建 api-key。我正在考虑扩展 express-gateway 应用程序本身并创建页面,网站所有者可以在其中使用各种输入字段填写表单,这些输入字段将用作例如命令的参数,我可以在节点控制台中触发例如命令并创建凭据并将其保存在redis 数据库,然后获取这些信息以将其显示给用户作为他们的使用 rid 和 api-key。但我想知道其他人是如何做的最好的方式,比如谷歌、推特和更多是如何允许创建 api-key、删除密钥并在妥协时重新生成 api-key。一些建议是使用第三方工具来管理用户凭据,我几乎没有惯性接受这一点,即使我这样做了,我将如何将这些第三方解决方案连接到我的 express-gateway。

【问题讨论】:

标签: api-gateway api-management express-gateway


【解决方案1】:

一般来说,API 网关和身份验证服务器是独立的,或者至少是松耦合的。典型的工作流程是:

  1. 用户浏览到“创建帐户”页面以获取服务。
  2. 用户使用身份验证服务器创建帐户
  3. 用户通过 API 网关发出请求
  4. API 网关与认证服务器检查该操作是否被允许,如果用户无权执行请求的操作则丢弃它
  5. API 网关将请求分派到相应的服务器
  6. 接收服务器检查是否允许用户执行该操作(以防 API 网关被入侵)

为了方便,Express Gateway 包含自己的身份验证服务器,但步骤基本相同。不同之处在于使用Express Gateway Admin API 创建usercredentials 而不是转到不同的服务器。

请注意,Express Gateway 及其默认帐户数据库 (reddis) 不是开箱即用的持久性。

【讨论】:

    猜你喜欢
    • 2019-05-05
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多