1

我正在开发一个Web应用程序,用户可以通过其个人电子邮件地址登录/注册或使用联合身份验证(如Facebook/Twitter)登录。我已经为Cognito用户池和身份池设置了相同的设置。Cognito的API网关授权用户池+身份池

成功登录后,将调用API网关上托管的API以在应用程序上显示一些数据。我想为每个API调用调用实现授权,并仅为授权用户返回响应。

我已经在API网关中创建了User Pool Authorizer,并且我能够基于Id令牌验证在用户池中创建的用户。

根据我的理解,要从身份验证池中验证用户身份,我可以在Api Gateway中使用AWS_IAM。 AWS_IAM可能不适合我的应用程序,因为API可以由用户在用户池以及身份池中调用。

我在考虑使用自定义授权器使用Lambda函数进行验证。

如果必须实现自定义授权者,应该根据会话令牌验证策略文档是否足以验证来自用户池/身份池的用户?请建议定制授权的替代品,如果有的话。

在此先感谢

回答

0

您是否看到此博文? https://aws.amazon.com/blogs/mobile/integrating-amazon-cognito-user-pools-with-api-gateway/

可以直接将Cognito用户池令牌作为API网关的授权者集成,并且它可以大大简化您所描述的流程。

+0

感谢您的输入。我已经阅读了这篇文章,这特定于仅从用户池验证用户。但我的应用程序拥有用户池以及身份池的用户。 – Rahul

+0

啊,理解。那么,您可以通过您的身份池管理用户池登录。有可能将其设置为与Facebook平行的另一个提供商,因此两者都为凭证交易令牌。这将允许您使用相同的授权人。 APIGW团队成员编写了这个答案,详细介绍了一下:https://stackoverflow.com/questions/39184419/how-to-authenticate-api-gateway-calls-with-facebook/39185749#39185749 –

相关问题