问题标签 [lambda-authorizer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1045 浏览

cors - 从请求中剥离的 CORS 自定义标头

我正在使用基于令牌的 lambda 授权器,如下所述: https ://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

现在我仍在使用标题道具所在的玩具示例tokenHeader

我的获取如下:

当我查看网络选项卡时'tokenHeader':'allow',我的请求中缺少标头,导致授权方发出 401 - 我需要做些什么来防止此标头被剥离?

请求缺少 tokenHeader 标头

旁注:此请求适用于邮递员

API 网关配置(不确定这是否相关):

选项
请求 选项方法请求 响应 选项集成响应

获取
请求 GET 方法请求 响应 获取集成响应

我不想忽略 CORS 并在两者之间发送数据account-api.example.comdev.example.com所以请不要回答指示删除/忽略 cors——我的目标是正确实现 cors。

0 投票
2 回答
511 浏览

amazon-web-services - 无服务器 AWS - 是否值得使用自定义授权器(作为 lambda)?

嘿,我开始使用无服务器框架、apigateway、lambdas 和授权者。

这是我的问题:

  1. 为了验证正确的 JWT 令牌(这似乎是当今无服务器身份验证的最佳解决方案),我需要一个客户端 ID。由于授权者 lambda 不能(?)将请求的任何其他参数传递到 lambda 中,除了令牌本身,这是一项艰巨的任务。我怎样才能做到这一点?

  2. 由于每次经过身份验证的调用都会调用一个额外的 lambda,所以我的成本会翻倍?!可能是我在这里误解了一些东西,但在我看来,在不使用授权方的情况下实现一种验证我的令牌的方法更便宜,而且我不需要实现授权方 lambda 本身。

0 投票
2 回答
268 浏览

amazon-web-services - 在 API Gateway 中控制调用 Rest API 的访问权限

我有几个 API 网关资源,我想允许其他服务调用它们。假设我有这两个端点:

  • /任务
  • /环境

我的客户是一些服务,他们像以下请求一样调用这些 Rest API:(它是用 Javascript 编写的,但他们可以使用任何其他编程语言,但不能使用 AWS SDK)

我需要在客户调用我的 API 时检查他们的权限。当服务向 /tasks 发送请求时,我应该检查它的权限,看看它是否没有所需的权限,我将返回 403 作为响应。

我想知道实现它的最佳方法是什么?我应该使用与身份池集成的 AWS Cognito 用户池还是自定义授权方?

如果我的问题不够清楚,请发表评论,我会提供更多信息。

我希望有人有相关经验,可以帮助我。

0 投票
0 回答
325 浏览

aws-lambda - 部署到 AWS 时未调用无服务器 Lambda 授权程序

使用无服务器,我在 Node.js 中部署了一个带有多个 lambda 函数的 API 网关。我还使用 lambda 授权 (authenticate.js) 向一个 GET 端点添加了身份验证。我没有想法,所以任何帮助将不胜感激。我唯一能看到的是没有分配给授权人的 Lambda 调用角色。我没有找到任何关于如何将其添加到无服务器 yaml 的文档,但 Cloudwatch 日志没有显示任何授权方执行,所以我希望出现 403 或其他内容。

  1. 使用无服务器离线进行本地测试工作得很好
  2. 使用 Postman 在本地进行测试工作得很好
  3. 部署后,在 AWS 控制台中测试 lambda 就可以了
  4. 部署后,在 AWS 控制台中测试 API Gateway 方法就可以了
  5. 部署后,测试 authenticate.js Lambda 授权程序就可以了
  6. 部署后,在 Postman 中测试端点失败并返回以下错误:

无服务器.yaml:

Lambda 授权人:

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
804 浏览

aws-lambda - 带有自定义授权器的 lambda 可以使用控制台进行测试,但不能使用邮递员

我有一个 lambda 函数,可以在 AWS 控制台上进行测试。但是,一旦我在 Postman 上进行测试,它就会给我以下响应

我基本上在标题上有一个授权,带有一个像这样的不记名令牌

正文是空的,因为它只是一个 Get 端点。不确定我在邮递员的要求中遗漏了什么。任何建议表示赞赏。

0 投票
1 回答
1404 浏览

node.js - API Gateway Authorizer - IAM 策略未缓存

我正在尝试缓存授权方 lambda 在第一次验证 JWT 令牌时返回的 IAM 策略。我已在 API Gateway Authorizer 中启用并将其设置authorizerResultTtlInSeconds3500秒。但是,我仍然看到在缓存时间范围内发送到 Authorizer lambda 函数的请求。

我的 node.js 脚本如下:

不知道我错过了什么。任何帮助将非常感激!

0 投票
2 回答
288 浏览

amazon-web-services - 从网站调用我的 lambda 函数时授权配置异常

我在 S3 中托管了由 Cloudfront 提供服务的静态网站。我从我的网站通过 API 网关 Rest API 调用 lambda 函数。API 调用返回 200 ok 响应,一切正常,但有时调用失败并显示 X Amazon Header 中的消息读作授权人配置异常。我已经通过 API 网关在我的 Lambda 授权方中配置了 lambda 调用策略,并且还通过编辑我的授权方角色的信任关系启用了 API GATEWAY 调用。我仍然很少收到此错误。之前成功完成的 API 调用会在连续调用时抛出此错误。什么会导致此错误?我在这里想念什么?

0 投票
2 回答
729 浏览

amazon-web-services - 如何使用无服务器部署没有身份源的 API Gateway 自定义授权方?

我正在尝试使用无服务器框架在 API Gateway 中创建自定义 lambda 授权方。

我的服务的客户端可能会发送“授权”或“X-Custom”标头(但不能同时发送)。所以我需要的是一个没有身份源的自定义授权人。

狙击的无服务器 YAML 如下:

我正在使用以下请求模板,以便我的 lambda 获取标头并执行验证:

问题是当我运行无服务器部署命令时,授权方是使用“授权”身份资源创建的。

我的代码基于以下资源:

这让我想到了两个问题:

  1. 无服务器框架用于部署我的授权方的构造版本是什么?
  2. 如何在没有资源的情况下指定自定义授权方?
0 投票
1 回答
651 浏览

amazon-web-services - 仅在使用 Lambda 授权方的代理 API Gateway 请求上添加标头

目前,我有一个基于用户是否经过正确身份验证的服务器 HTML 的 AWS ApiGateway + Lambda 架构。我正在尝试实现这个 Cognito 和自定义 Lambda 授权器。我希望我的 Lambda 始终返回 HTML,并根据传递的 cookie,为登录/注销状态生成 HTML。在我看来,最好有一个单独的授权者来执行令牌验证并将标头传递给生成 HTML 的 Lambda。

怎么能做到这一点?

我正在使用 AWS Sam 模板来定义我的 CF 堆栈。查看我当前的模板:

在我的授权人(Typescript)中,我正在考虑生成一个始终具有“允许”效果的策略。但是,如果缺少授权令牌(尚未基于 cookie),则它已经返回 403。请参阅:

0 投票
1 回答
278 浏览

c# - AWS API Gateway Lambda 授权方请求类型没有 methodArn?

使用 C# 编写自定义 API Gateway Lambda 授权方,Im 使用REQUEST授权方(不是 TOKEN)。查看他们的文档,我应该有一个可用的参数,methodArn但查看APIGatewayProxyRequest它未从他们的 SDK 中列出的类。

这是用于我的 lambda 授权方的正确输入参数吗?