[英]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.