使用 Cognito 的 AWS Lambda 正确方法

AWS Lambda with Cognito right approach

我想为客户提供一个简单的 API。客户在他的应用程序中使用我的 API 的输出。 API 非常简单。我正在使用无服务器框架部署到 AWS Lambda。通过 API 公开的函数不使用任何其他 AWS 服务(如 S3 等)。

我的问题是使用哪种身份验证。我正在考虑尝试为此使用 cognito。

1.问题: 这有意义吗?或者对于这个简单的用例还有更简单的选择吗?

2。问题: 所以我做对了。我会首先创建一个用户池。然后基于这个用户池创建一个身份池?

3。问题: 最后,我的客户端从 cognito 获取访问令牌并将其附加到请求中的 header。这使他可以通过 API 网关访问我的 REST API 并触发 lambda 函数。但是客户端首先如何创建一个 "account" 用户池?我参与其中了吗?

Cognito 身份验证听起来确实是此用例的不错选择。您可以有如下流程:

Cognito User Pool Authentication -> Token passed as header to the API in API Gateway -> API returns JSON data after successful authentication [一种]。

我想强调的是,Cognito 用户池足以满足此用例。 Cognito 用户池用于身份验证,Cognito 身份池用于授权。 Cognito Identity Pools 本质上生成临时 AWS 凭证,这些凭证由 AWS STS 提供。因此,我在这里看不到您需要 Cognito 身份池的地方。

并且要生成 JWT 令牌,您需要让用户执行成功的身份验证操作。要执行 returns 令牌的成功身份验证操作,您可以查看 InitiateAuth API 调用 [b]。

参考资料

[一个]。 https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html

[b]。 https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html