如何使用Facebook验证API网关呼叫?

inb*_*thu 10 authentication amazon-web-services amazon-cognito aws-api-gateway amazon-cognito-facebook

问题:我想使用Facebook身份验证授权我的Amazon API Gateway托管REST API用户.

我的理解:我知道Amazon Cognito可用于验证用户身份,称为联合身份.然后,我看到使用Amazon Cognito您的用户池验证API客户端,该客户端对Cognito用户池进行身份验证.我还发现使用Amazon API Gateway自定义授权器可以使用自定义授权.但是,我没有找到链接API网关使用Cognito Federated Identities(即Facebook这里)进行身份验证.我们是否可以使用与联合身份用户池相同的过程,还是应该像在自定义授权人中那样使用?我有点困惑.任何帮助是极大的赞赏.

提前致谢.

Mik*_*AWS 12

Cognito联合身份和Cognito用户池可以解决不同的用例.

使用Cognito用户池,您可以明确管理可以访问您的服务的用户.当您想要将API的访问权限限制为固定的一组用户时,这非常有用.

使用Cognito联合身份,您可以将用户管理委派给身份提供者,例如Facebook,Google或Amazon.在这种情况下,拥有所选身份提供者用户身份的任何人都可以访问您的服务.当您希望广泛使用API​​时,这非常有用,但仍需要将各个身份与API用户相关联,以便管理每个用户的状态或资源.

要使用联合身份,请将API网关方法设置为使用"AWS_IAM"授权.您可以使用Cognito创建角色并将其与Cognito身份池关联.然后,您可以使用身份和访问管理(IAM)服务授予此角色调用API网关方法的权限.

  • 大.谢谢!在使用Facebook验证用户并从Cognito获取AWS凭据后,我获得了_AccessKeyId_,_ SecretKey_,_ SessionCoken_,_IdentityId_.现在,我想我理解了整个过程,除了一件事:*在将API授权转换为AWS Gateway的方法之后,我应该如何发送带有授权信息的REST请求.*我的意思是我应该在哪里以及在哪里包含这些信息.在Request Header/Body中如何?提前致谢. (2认同)