11

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

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

提前致谢。

4

1 回答 1

13

Cognito 联合身份和 Cognito 用户池针对不同的用例。

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

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

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

于 2016-08-27T21:05:22.647 回答