【问题标题】:How to authenticate Guest/Unauthenticated users with API Gateway Cognito Authorizer?如何使用 API Gateway Cognito Authorizer 对访客/未经身份验证的用户进行身份验证?
【发布时间】:2021-09-05 16:26:54
【问题描述】:

在 API 网关中,您可以设置一个 Cognito 授权者,该授权者引用 Cognito 用户池进行身份验证。为了验证,API Gateway 需要在 Authorization 标头中设置 Cognito 用户池 JWT 令牌。

使用“aws-sdk”和“amazon-cognito-identity-js”NPM 包,我如何创建访客/未经身份验证的用户并检索 JWT 令牌以传递给 API 网关?通过访客/未经身份验证,我的意思是甚至没有用户名或电子邮件。或者,当前的 API 无法做到这一点?

Amplify(建立在 Cognito 之上)似乎有类似的东西:https://docs.amplify.aws/sdk/auth/guest-access/q/platform/android

想法?

【问题讨论】:

  • 这类问题中经常遗漏的一点是,您不必将授权人附加到网关上的每条路由上。您可以将未经身份验证的公共路由集成到同一个 lambda,而 lambda 检查事件的路径以限制行为的范围。保留一个单独的精简 lambda 通常更安全,但并非绝对必要。

标签: amazon-web-services aws-api-gateway amazon-cognito


【解决方案1】:

Cognito 用户池是一个身份验证提供程序。这与身份池提供的未经身份验证的访问是分开的。您不能使用 API Gateway 中的默认 cognito 授权方来验证令牌。但是,您可以使用自定义 lambda 授权方,该授权方将获取令牌并确认它对您的身份池有效。

【讨论】:

  • 顺便问一下,Amplify SDK 是如何创建可以由 API Gateway Cognito 授权方验证的“真实”访客/未经身份验证的用户?
  • 不了解放大,但身份池无需注册即可为“客人”创建临时 aws 凭证。 Amplify 只是从 ID 池中获取这些凭据。
猜你喜欢
  • 2019-12-31
  • 2019-09-25
  • 2016-01-17
  • 2017-03-25
  • 2016-08-20
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多