gpt4 book ai didi

rest - 使用 Cognito 进行 REST API 身份验证

转载 作者:行者123 更新时间:2023-12-04 08:31:48 26 4
gpt4 key购买 nike

我希望使用 API Gateway + Lambda + Cognito 用户池来构建一个简单的 REST API。

API 将以两种方式使用。第一个是支持基本的 Web 应用程序(托管在 CloudFront + S3 上)。 Web 应用程序的身份验证使用托管的 Cognito 登录/注册流程并且工作正常(通过 API Gateway 设置以使用用户池身份验证器)。

第二种方法是让客户使用 REST API 与系统进行通信。

例如,客户端可能使用 Web 应用程序配置工作流,然后使用 API 调用该工作流。

验证 API 以与后端服务一起使用的推荐方法是什么?

传统上,我希望为此目的使用 API key + secret token 。我在 API Gateway 界面中创建 API key 没有问题,但是无论如何我看不到将其链接到特定用户,也看不到任何在 API key 旁边指定 secret token 的方法。

并且假设上述情况是可能的,我将如何设置它,以便我可以使用基于 JWT 的 Web 应用程序方法和 API key + secret token 供客户使用。

编辑:此外,我注意到应用程序客户端有一个 ID 和一个 secret 。它们是否打算用于第 3 次基于 API 的身份验证(类似于其他系统如何让您创建用于 API 访问的应用程序)?我有点怀疑,因为每个用户池有 25 个限制,尽管这是一个软限制......

最佳答案

我自己一直在寻找这个问题的答案,我的搜索让我想到了你的问题。假设您想使用众所周知的 key / secret 方法,我将从我的研究中给您最好的答案。也许其他人可以提供更好的方法。

基本上,方法是:

  • 您的 REST API 帐户只是(可能是单独的)用户池中的 Cognito 用户
  • API账户的管理是从后端完成的
  • 用户名和密码将是 API key 和 secret ,是 administratively created (请参阅 Admin* 操作),并且可以是您想要的任何格式(在 Cognito 限制内)
  • REST API 是 authorized via Cognito JWT tokens
  • API 帐户 key 和 secret 仅用于检索或刷新 token
  • 这要求 REST API 有一组端点来支持 token 检索和使用帐户 key 和 secret 进行刷新
  • 根据您设置 Cognito 刷新间隔的时间长短,您可以要求 API 帐户提交其 key / secret 凭据 from very often to almost never

  • 构建 REST API 的授权以使用 Cognito token 将允许您将 REST API 直接与 API Gateway's support for Cognito 集成。 .

    我认为整个事情最令人头疼的是,您必须创建支持部分,例如,注册用户请求 API 帐户和管理这些帐户,以及一些用于 token 交换的额外帮助 REST 端点。此外,客户端必须跟踪 key / secret 和 token ,并添加客户端逻辑以了解何时提供 token 或凭据。

    关于rest - 使用 Cognito 进行 REST API 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355572/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com