API Auth 类型的 Cognito 用户池和 API 密钥之间的区别
Posted
技术标签:
【中文标题】API Auth 类型的 Cognito 用户池和 API 密钥之间的区别【英文标题】:Difference Between Cognito User Pool and API Key For API Auth Type 【发布时间】:2019-10-17 22:15:37 【问题描述】:我目前正在使用我的 react 应用程序设置 AWS Amplify 并添加一个 API,以便我可以使用 GraphQL。 我目前可以选择添加授权类型,我的两个选项是 API 密钥或 Amazon cognito 用户池。 据我了解,第二种选择意味着如果用户登录,他们可以与 API 调用进行交互。 第一选择(API 密钥)是什么意思? 有什么区别?
【问题讨论】:
【参考方案1】:API 密钥基本上适用于未经身份验证的工作流程,其中应用程序不需要不同用户的私有访问权限。用户池允许您应用细粒度的访问控制。看看 GraphQL 转换器中带有 @auth 的选项:https://aws-amplify.github.io/docs/cli/graphql#auth
【讨论】:
【参考方案2】:API 密钥用于公共数据,Cognito 用户池用于私有数据。 一个很好的链接: https://aws.amazon.com/fr/blogs/mobile/graphql-security-appsync-amplify
【讨论】:
以上是关于API Auth 类型的 Cognito 用户池和 API 密钥之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
在静态网页上保护 AWS Cognito 用户池和客户端 ID
使用 next-auth 时,如何从浏览器调用我的 Cognito 安全 Rest API?
Cognito Auth.sendCustomChallengeAnswer 给出“AuthClass - 无法获取登录用户没有当前用户”
Cognito 用户池作为具有客户端凭据的身份提供者仅在保存到 aws 控制台后才有效