Amazon web services AWS-Lambda与Cognito-right方法

Amazon web services AWS-Lambda与Cognito-right方法,amazon-web-services,amazon-cognito,serverless-framework,Amazon Web Services,Amazon Cognito,Serverless Framework,我想为客户提供一个简单的API。客户机在其应用程序中使用my API的输出。API是一个非常简单的API。我正在将无服务器框架部署到AWS Lambda。通过API公开的函数不使用任何其他AWS服务(如S3等) 我的问题是使用哪种身份验证。我想试着用cognito来做这个 1。问题: 这有意义吗?或者,对于这个简单的用例,是否有更简单的选择 2。问题: 所以我说对了。我将首先创建一个用户池。然后基于此用户池创建一个标识池 3。问题: 最后,我的客户机从cognito获取访问令牌,并将其附加到请求

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

我的问题是使用哪种身份验证。我想试着用cognito来做这个

1。问题: 这有意义吗?或者,对于这个简单的用例,是否有更简单的选择

2。问题: 所以我说对了。我将首先创建一个用户池。然后基于此用户池创建一个标识池

3。问题:
最后,我的客户机从cognito获取访问令牌,并将其附加到请求中的头。这样他就可以通过API网关访问我的REST API,并触发lambda函数。但是,客户机首先如何在用户池中创建“帐户”呢?我参与其中了吗?

对于这个用例来说,Cognito身份验证听起来确实是一个不错的选择。您可以有如下流程:

Cognito用户池身份验证->作为头传递给API网关中的API的令牌->成功身份验证后API返回JSON数据
[a]

我想强调的是,Cognito用户池足以满足这个用例。Cognito用户池用于身份验证,Cognito标识池用于授权。Cognito标识池实质上生成临时AWS凭证,这些凭证由AWS STS出售。因此,我不认为在这里您需要Cognito标识池

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

工具书类 [a]


[b]

非常感谢你的回答。但有一点我仍然不太清楚。如果我设置了一个cognito用户池,我如何将用户添加到那里或邀请他?[a]中的引用说:
客户端必须首先让用户登录到用户池,获取用户的身份或访问令牌,然后使用其中一个令牌调用API方法,
这是否意味着他需要首先注册?是AWS Coginito提供的。从我的角度来看,我所关心的是API网关在授权头中获得正确的承载令牌。@math您确实是正确的。没有注册和登录,您就无法从Cognito获得符合OIDC的ID和访问令牌。这是由Cognito处理的吗?也就是说,我的客户是否通过特定的链接注册到cognito用户池,或者这到底是如何工作的?我只是对客户端如何注册到池和获取访问令牌的步骤有点困惑。对不起,如果这太具体了。对我来说,重要的是知道我需要在我这边设置什么,AWS Cognito提供了什么,或者客户需要做什么。基本上,用户会注册的。然后他们登录。然后他们得到代币。这些令牌在RESTAPI的授权头中传递,您可以成功访问Lambda返回的任何内容。因为我只启动并运行了API,而没有一个带有前端的web应用程序。原始注册/登录是如何工作的?