【问题标题】:AWS API Gateway with JWT tokens带有 JWT 令牌的 AWS API 网关
【发布时间】:2023-03-23 08:00:01
【问题描述】:

目前我正在开发一个基于桌面 C# 的应用程序,使用 OAuth 2.0 协议进行授权。所以我得到客户端访问和刷新令牌没有任何问题。

因此,OAuth 2.0 表示我们需要访问令牌来从我的服务中检索数据。但是,在阅读了有关它的 Amazon 文档后,我完全感到困惑,因为他们正在使用另一种方式(访问密钥),生成访问密钥和临时密钥以及其他方式。

为什么我们需要访问令牌? 有没有其他方法可以做到这一点,使用 Access-Token 而无需处理亚马逊 SDK?

谢谢

【问题讨论】:

  • Cognito 中描述的 client access 在哪里?你想达到什么目的?您是否需要访问一些 API?或者您的应用程序需要访问 AWS 资源?
  • “我正在毫无问题地获得客户端访问和刷新令牌”:我的意思是我正在获得访问令牌和刷新令牌!我正在尝试在不使用 AWS 开发工具包的情况下从某些资源中检索数据。
  • 好的。什么是前端这些资源?如果这些资源是apigateway,您可以使用Cognito user pool 授权方和apigateway。存在集成 - 您需要做的就是配置。因此,了解您的资源在哪里很重要。

标签: amazon-web-services oauth-2.0 aws-api-gateway amazon-cognito


【解决方案1】:

您是对的,还有其他调用 AWS 服务的方法,即访问密钥等。您想如何使用 Cognito 取决于您。您可以将其用于以下任一用途:

身份验证 -> 验证用户确实是他们的身份。您可以通过简单地检查 Cognito 是否提供令牌来做到这一点。之后,您可以忽略应用程序中的令牌并继续以正常方式访问 AWS 资源。

另一个选项是授权 -> 这不仅仅是身份验证。这更适合应用程序的并非所有用户都具有相同权限的情况。也许某些用户可以访问 S3 存储桶中的数据,而其他用户则不能,等等。为此,您需要设置 IAM 角色和策略,并让您的应用程序使用访问令牌而不是密钥。如果您有另一种处理授权的方式,请不要选择 Cognito 方式。

【讨论】:

  • 感谢@Deepthi 的回答!主要问题是我找不到如何让应用程序使用访问令牌而不是密钥。我在亚马逊文档中只能找到使用密钥令牌来获取数据!你能给我一个链接吗?我将不胜感激。谢谢
  • @AliBenYedder 为此,您需要使用 Cognito 身份池。您可以在此处找到相关文档:docs.aws.amazon.com/cognito/latest/developerguide/…
  • 您提供的链接正在使用 SDk 处理它。我没有实现 SDK。我采取了另一种方式并尝试使用 Login With Amazon 进行身份验证,一旦收到访问令牌,我就尝试将其发送到 STS 以获取凭据。 STS 返回 400 Bad Request : 提供的令牌不是使用亚马逊登录令牌。
猜你喜欢
  • 2021-08-12
  • 2018-10-20
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 2021-01-31
  • 2019-12-26
  • 2015-12-30
  • 2019-07-03
相关资源
最近更新 更多