如何通过 Facebook 验证 API 网关调用?

How to authenticate API Gateway calls with Facebook?

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

我的理解:我知道 Amazon Cognito 可用于验证用户身份,称为联合身份。然后,我看到了 Authenticate API Clients with Amazon Cognito Your User Pool, which authenticates for Cognito User Pool. I also found Use Amazon API Gateway Custom Authorizers, to use from custom authorization. But, I did not find to link API Gateway to authenticate using Cognito Federated Identities (i.e. Facebook here). Can we use same procedure as User Pool for Federated Identities as well or should I use as in Custom Authorizers ? 我有点困惑。非常感谢任何帮助。

提前致谢。

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

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

借助 Cognito 联合身份,您可以将用户管理委托给 Facebook、Google 或亚马逊等身份提供商。在这种情况下,任何拥有您选择的身份提供者的用户身份的人都可以访问您的服务。当您想让 API 广泛可用但仍需要将个人身份与 API 用户相关联以便管理每个用户的状态或资源时,这很有用。

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