如何将Cognito身份池与API网关集成?

anr*_*oco 7 amazon-web-services amazon-cognito aws-api-gateway

我对Cognito和API Gateway的集成有疑问,希望您能为我提供帮助。我正在考虑开发一个我希望与第三方(Facebook,Twitter等)进行身份验证过程的应用程序,因此我放弃了Cognito用户池,然后又有了Cognito身份池,但这就是我的疑问所在。

  • 如何将其与API Gateway集成?
  • 是否应该使用API​​ Gateway Custom Authorizer来管理Cognito生成的令牌?
  • 如果我不使用自定义授权者,如何根据用户个人资料(管理员,客户端...)限制对API方法的访问?

谢谢你的帮助

Jac*_*AWS 7

如何将其与 API Gateway 集成?

  • 对于 Cognito 身份池,您将方法上的授权类型设置为 AWS_IAM

我应该使用 API Gateway Custom Authorizer 来管理 Cognito 生成的令牌吗?

  • 使用身份池,这是不可能的。您必须使用 AWS_IAM 授权。您将可以访问后端调用的 Cognito ID。

如果我不使用自定义授权方,如何根据用户配置文件(管理员、客户端...)限制对 API 方法的访问?

  • 更熟悉Cognito的人会能够更好地回答,但我相信您只能设置“经过身份验证的角色”和“未经身份验证的角色”。因此,当用户通过外部提供者进行身份验证时,他们会获得“经过身份验证的角色”,仅此而已。我不确定身份池中是否支持用户组(管理员、客户端)(用户池中支持)。

编辑:也许这会有所帮助http://www.slideshare.net/AmazonWebServices/securing-serverless-workloads-with-cognito-and-api-gateway-part-i-aws-security-day

  • 如何使用 AWS_IAM 设置授权?授权者的唯一选项是 Lambda 函数和用户池(不是身份池)。 (2认同)