当前位置: 首页 > 知识库问答 >
问题:

AWS API网关-将访问令牌与Cognito用户池授权器一起使用?

柏阳炎
2023-03-14

我正在配置一个具有各种前端(移动和web应用程序)的应用程序和一个由Lambda提供动力并通过AWS API网关访问的API后端。

由于我正计划使用Cognito对用户进行身份验证和授权,所以我在我的API网关和几个API方法上设置了一个Cognito用户池授权器。

使用这样的体系结构,从OAuth角度来看,我的应用程序(例如iOS或Vue.js应用程序)是客户端应用程序,而我的API网关后端是资源服务器,这似乎是合乎逻辑的。根据这个Auth0论坛的帖子,我应该在我的客户端应用程序中使用一个ID令牌,并传递一个访问令牌来授权我的API网关资源。

我是否需要添加一些特定的作用域来获得API网关授权一个使用访问代码的请求?如果是,这些配置在哪里?

还是我错过了什么?API网关是否只允许ID令牌与Cognito用户池授权器一起使用?

共有1个答案

朱阳晖
2023-03-14

您可以使用与id令牌相同的授权者的访问令牌,但需要在用户池和APIG中进行一些附加设置。

即使完成了这个额外的设置,您也不能使用带有访问令牌的内置授权程序测试功能,只能使用id令牌。来自AWS的典型80%解决方案!

要使用访问令牌,您需要在App Integration->resource servers下的用户池中设置资源服务器,您使用什么并不重要,但我假设您使用 .com 作为标识符,并且您有一个称为API的作用域。

 类似资料:
  • 我正在使用Cognito用户池对系统中的用户进行身份验证。成功的身份验证将提供一个ID令牌(JWT)、一个访问令牌(JWT)和一个刷新令牌。这里的文档清楚地提到了刷新令牌可以用于刷新访问令牌,但没有提到如何使用。我的问题是,一旦我的访问令牌过期,我如何使用存储的刷新令牌再次刷新我的访问令牌? 我搜索了JavaScript SDK,但找不到任何方法来做同样的事情。我肯定错过了什么。 我还想通过Lam

  • 我试图让我的API网关与Cognito用户池授权器一起工作,但我似乎无法让它工作。我现在没有使用任何SDK。一些细节-对于Cognito pool,我将设置ID provider设置为Cognito user pool,Oauth flow'impilicit grant‘和scope设置为'openid'。创建了一个应用程序(&domain),还生成了客户端机密。电子邮件是唯一的字段。-在API

  • 我正在尝试使用aws api网关授权器和cognito用户池。当我使用aws api网关控制台进行测试时,它工作得很好。 但当我尝试在api中启用授权时,它显示请查看下面的屏幕截图 有人能帮忙吗。

  • 我正在尝试在twitter上创建一个应用程序。当我登录时,它会给我以下错误- 错误-是否授权“”使用您的帐户? 我得到以下错误在访问请求令牌(https://api.twitter.com/oauth/request_token)- 错误-无法验证oauth签名和令牌。 我正在做的是重定向用户到: https://twitter.com/oauth/authenticate?oauth_token

  • 我遵循的方法是,我为每组用户创建一个单独的Cognito用户池。 当用户登录时,他将通过适当的用户池进行身份验证。 为了调用后续的API,我计划使用Lambda Authorizer。 我遇到了下面的链接,以验证ID令牌。 https://github.com/awslabs/aws-support-tools/blob/master/cognito/decode-verify-jwt/decod

  • 我想要一些关于如何在隐式授予流中使用ID令牌和访问令牌的澄清。我有一个使用msal.js for Angular包的Angular SPA和一个Web API。API不调用任何外部服务,如MSFT Graph。后端仅使用JWT中的角色声明来建立对API功能的RBAC授权。 这个文档写着:https://docs.microsoft.com/en-us/azure/active-directory/