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 控制台后才有效

AWS Amplify Cognito 中的禁用用户仍然可以访问 API 中的数据

使用 AWS Cognito 登录用户/验证用户