【问题标题】:AWS Cognito UserPool Authentication on HTTP Request针对 HTTP 请求的 AWS Cognito UserPool 身份验证
【发布时间】:2018-10-15 19:04:44
【问题描述】:

我正在使用无服务器框架构建 API。我正在尝试通过利用 Cognito (UserPools) 对通过 API Gateway 传入的请求进行身份验证,并为我的每个用户为他们进行的每个 API 调用提供自己的授权令牌。

尝试使用邮递员对其进行测试,但我无法拨打电话并通过授权。我尝试使用App Client Secret 在标题中设置Authorization,但我只是得到“未经授权”的回复。我有什么遗漏吗?

【问题讨论】:

  • 发布您当前的代码并告诉我们您尝试了什么。
  • 我正在尝试通过邮递员请求访问 API Gateway/Lambda

标签: amazon-web-services amazon-cognito


【解决方案1】:

您应该使用令牌而不是 App Client Secret。您如何检索令牌?

【讨论】:

  • 我没有检索令牌。我的目的是将令牌提供给我的客户,这样他们就可以在所有请求的标头中填充它。
  • 好的,默认情况下,发送 Authorization 标头需要一个 id 令牌。客户端密钥对调用 API 网关无效。因此,如果您要做的只是测试,请使用您从令牌端点检索到的 ID 令牌。
【解决方案2】:

对于用户登录授权,您必须确保在 UserPool 中创建新的客户端应用程序时取消选中生成客户端密码的选项。

在您的 API 网关中,您创建一个授权方,在创建 UserPool 之前对您进行引用。通知标题的“授权”。

使用 AWS 第三方 SDK 服务(或只是他们的 API),使用有效用户登录。登录后您将获得两种类型的令牌,请确保您保留正确的一种。我建议您通过 API Gateway 授权人测试选项检查令牌。注意:这一步是最重要的,因为您正在隔离您获得的令牌和授权服务。这样您就可以跟踪问题的根源。

【讨论】:

  • 问题是我没有登录。我想给那些使用我的服务的人一个令牌,这样他们就可以对每个 API 请求进行身份验证。我宁愿避免他们在进行 API 调用之前检索该令牌,这似乎不对。
  • 感谢您指出这一点,但我猜您对身份验证标准的考虑有点过分,您的方法存在安全问题。您介意分享有关您的业务解决方案和/或目的的更多详细信息吗?
猜你喜欢
  • 2016-06-25
  • 2018-01-29
  • 2020-11-03
  • 1970-01-01
  • 2016-08-18
  • 1970-01-01
  • 2017-01-02
  • 2018-05-22
  • 2020-09-04
相关资源
最近更新 更多