首页 文章

没有客户端SDK的AWS Cognito身份验证

提问于
浏览
1

TL;DR 如何通过AWS Cognito without embedding Cognito SDK to the client-side? 为我的电影搜索API提供经过身份验证/未经身份验证的用户的访问权限

AWS Cognito documentation声明您必须将客户端SDK部署到您的应用程序中 . 我想避免将我的API实现外部嵌入到特定的提供程序中 . 例如,将来我可能会使用Google Firebase或任何其他IdP . 因此,我不希望在客户端与Cognito进行深度集成 . 将AWS Cognito(或任何IdP)与客户端隔离的推荐方法是什么?

2 回答

  • 1

    对于经过身份验证/未经身份验证的用户,您可以在后端后面隐藏Cognito服务 . 这带来了一些挑战 .

    • 对于身份验证,如果您使用Cognito UserPools或任何公共标识提供程序,则需要在后端服务后面验证它们发出的令牌 .

    • 对于未经身份验证的身份,您需要使用手动机制对其进行跟踪,并将该信息发送到后端以启动未经身份验证的用户 .

    • 您无法直接从浏览器访问AWS服务,例如将文件上传到S3(需要AWS SDK)等(这是AWS Cognito联合身份的关键优势之一) .

  • 0

    一种选择是:

    • 在APIGateway中将您的API部署为http(s)代理 .

    • 添加APIGateway资源策略以允许来自IAM角色的操作

    • 使用经过身份验证的用户创建Cognito用户池,该用户假定具有IAM角色

    • 将APIGateway作为资源服务器添加到Cognito用户池

    • 允许用户通过aws cli登录并获取访问令牌

    • 在对APIGateway endpoints 的调用中使用访问令牌

相关问题