繁体   English   中英

采用认知正确方法的AWS Lambda

[英]AWS Lambda with Cognito right approach

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

我的问题是要使用哪种身份验证。 我当时想尝试使用Cognito。

1.问题:这有意义吗? 还是对于这个简单的用例甚至是一个更简单的选择?

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

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

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

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

我想强调一点,一个Cognito用户池足以满足此用例。 Cognito用户池用于身份验证,Cognito身份池用于授权。 Cognito身份池实质上生成了临时的AWS凭证,由AWS STS出售。 因此,我在这里看不到您需要Cognito身份池的地方。

为了生成JWT令牌,您需要让用户执行成功的身份验证操作。 要执行成功的返回令牌的身份验证操作,您可以查看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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM