gpt4 book ai didi

amazon-web-services - 使用 Lambda、Cognito 或 IAM 在 AWS 上进行用户身份验证(注册和登录)

转载 作者:行者123 更新时间:2023-12-04 13:58:42 25 4
gpt4 key购买 nike

我一直在寻找使用各种 AWS 服务来处理我们下一个主要项目的基础设施。我们开始研究 EC2 实例上的 docker 容器,但在进一步研究 AWS Lambda 之后 - 这似乎是一条值得探索的道路。

使用 AWS Lambda 范例,我们只需使用 Lambda 函数作为逻辑粘合剂,将我们的数据和事件(来自其他 AWS 服务)结合在一起。

例如,如果我们产品的用户创建了一条新记录,则可以在该事件上触发 AWS Lambda,我们可以调用 lambda 函数将该记录添加到 AWS Cloudsearch,从而使我们的搜索保持最新。

在这种范式中,当涉及到用户管理、身份验证等时,我有点不确定。我已经阅读了一些关于 IAM 和 Cognito 的文档,以寻找 AWS 服务来卸载用户注册、登录、注销、忘记密码等。这些服务的实际用途似乎并非如此。 IAM 是组织(而不是用户群)的身份管理,而 Cognito 更专注于跨多个设备或应用程序实例(身份验证后)同步身份信息。

我目前想知道我是否应该做的是编写注册、登录、忘记密码等代码作为自己的 lambda 函数?或者 AWS 堆栈中是否有一些解决方案或一组解决方案可以解决这个特殊的问题?

最佳答案

您可以使用 your own authentication system使用 Cognito,然后使用 IAM 进行授权,甚至对您的用户群也是如此。

  • 在对用户进行身份验证时(可能在通过 API 网关调用的 Lambda 函数中),您将 retrieve or create in Cognito an identity ID associated to the user使用 GetOpenIdTokenForDeveloperIdentity .
  • 然后,您将拥有一个 Cognito OpenId token ,您可以将其提供给经过身份验证的用户。
  • 用户可以使用这个token获取temporary AWS credentials与 IAM 角色相关联。因此,您可以为经过身份验证的用户授予对您的某些 AWS 资源的访问权限:GetCredentialsForIdentity .
  • 当用户使用这些凭证调用 AWS 资源时,您可以通过上下文访问他的 Cognito 身份(例如 LambdaAPI GatewayS3 )
  • 最后,您可以find the user associated to this Cognito identity在您的系统中使用 LookupDeveloperIdentity .

  • 检查 authentication flowsome more examples

    关于amazon-web-services - 使用 Lambda、Cognito 或 IAM 在 AWS 上进行用户身份验证(注册和登录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858559/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com