如何通过Facebook验证API网关呼叫?

时间:2016-08-27 18:28:46

标签: amazon-web-services authentication amazon-cognito aws-api-gateway amazon-cognito-facebook

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

我的理解:我知道 Amazon Cognito 可用于对用户进行身份验证,称为联合身份。然后,我看到了Authenticate API Clients with Amazon Cognito Your User Pool,它为Cognito用户池进行身份验证。我还发现了Use Amazon API Gateway Custom Authorizers,可以使用自定义授权。但是,我没有找到链接API网关使用Cognito Federated Identities(即Facebook这里)进行身份验证。我们是否可以对联合身份使用与User Pool相同的程序,还是应该像Custom Authorizers中那样使用? 我有点困惑。非常感谢任何帮助。

先谢谢。

1 个答案:

答案 0 :(得分:12)

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

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

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

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