问题标签 [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 投票
1 回答
146 浏览

aws-api-gateway - 使用 CDK 为 AWS ApiGW 重用自定义授权方

我想重用在一个存储库中使用 CDK 创建的自定义授权方,用于在另一个存储库中创建的新 AWS ApiGW 方法。目前,没有用于导入现有授权人的 CDK 内置方法。

0 投票
0 回答
14 浏览

amazon-web-services - 共享 AWS 授权方达到引用限制

我已经使用共享授权方方法有一段时间了,就像这里所说的那样-> https://www.serverless.com/framework/docs/providers/aws/events/apigateway#share-authorizer

我将自定义身份验证建立为 lambda,然后使用 API 网关将其作为资源输出:

一切正常,但是当在我的其他端点中多次引用身份验证时,它会停止将 API 网关作为触发器附加,因此会破坏身份验证。

有谁知道我可以引用共享授权人的次数是否有限制?我在文档或其他论坛中没有找到任何解决方案。

0 投票
0 回答
44 浏览

amazon-web-services - API 网关 - 同时使用 API 密钥和自定义授权方

如何使用 API 密钥和自定义授权方来验证对 API 网关的请求?

我有以下要求:

  • 在我的 API 网关上使用 API 密钥(通过使用计划)来促进节流和它提供的开箱即用的其他可能功能。
  • 在验证 API 密钥后,使用 lambda 向传入请求添加额外验证。
  • 使用 swagger 添加上述配置。

这是我的招摇:

然后将两者都指定为我的端点的安全性:

但这不做api_key检查,只做additional-auth检查。如果我additional-auth从安全性中删除它,它会很好地使用 API 密钥。

是否可以从 swagger 中启用这两个验证?如果是,如何实现?我还有哪些其他选择?

0 投票
0 回答
18 浏览

amazon-web-services - 错误:AWS IOT 中的“如果使用可选签名标头,授权方授权自定义名称的令牌签名密钥映射必须为空”

我正在尝试使用用户名和密码将消息发布到 AWS IOT 代理。我能够使用证书发布数据,但甚至无法创建具有令牌验证的授权者。当我勾选令牌验证复选框时,我可以添加令牌头名称和键值对,但是当我单击创建或更新按钮时,它会给我以下错误:

The action failed because the input is not valid. Token signing keys map must be null for authorizer epdevice-authorizer if using optional signature header

我从这里按照步骤操作:https ://docs.aws.amazon.com/iot/latest/developerguide/custom-auth.html

还有一个问题,我如何测试这个 AWS IOT 代理来发布数据?在 MQTTfx 中,我可以使用证书轻松测试,但对于自定义身份验证,我无法测试。在上面的链接中,提到客户端需要两个扩展 ALPN 和 SNI,如下所述:

They also must pass the Application Layer Protocol Negotiation (ALPN) TLS extension with a value of mqtt and the Server Name Indication (SNI) extension with the host name of their AWS IoT Core data endpoint.

而且,我认为 MQTTfx 没有这里提到的这些扩展: https://bitbucket.org/Jerady/mqtt-fx-client/issues/263/port-8883-443-implementation-of-the-alpn

因此,如果有人可以为这些扩展提供一些替代 mqtt 客户端,我将不胜感激。

0 投票
1 回答
52 浏览

aws-lambda - 如何绕过内部 lambda 调用中的授权

我在 api 网关后面实现了两个 lambda(我们称之为 A 和 B)。假设 A 是从“外部”调用的,B 是从外部调用的,也是从 A 调用的。我还实现了 lambda Authorizer(基于令牌;认知)作为身份验证层。一切都按预期工作。有没有办法绕过 B 的授权程序,仅用于来自 A 的呼叫?
Tnx

0 投票
1 回答
41 浏览

typescript - 事件引用未配置授权方'authorizerFunc'

我正在使用打字稿和无服务器框架来构建 API。这是我的源代码: https ://github.com/liou-jia-hao/api/tree/add-ajv

我按照本教程构建自定义授权者: https ://www.serverless.com/framework/docs/providers/aws/events/apigateway#http-endpoints-with-custom-authorizers

但我得到这个错误:

我在无服务器 repo 上发现了这个问题: https ://github.com/serverless/serverless/issues/8781 但是在阅读了这个问题之后,我刚刚看到 BryanCrotaz 说解决了。但我仍然不知道如何解决这个错误。

0 投票
2 回答
103 浏览

amazon-web-services - 如何在 AWS 中保护基于 HTTP 的 API 网关

AWS API Gateway 有两个版本:

  • REST 版本
  • HTTP 版本 (v2)

我正在使用带有 lambda 授权程序的较新 HTTP 版本,并希望保护我的暂存/测试环境免受外部请求的影响。一种想法是在 API 网关前面放一个 WAF,但遗憾的是只有 REST 版本的网关支持 WAF。

有关如何保护这些资源以便只能从特定 IP 范围访问它们的任何建议?(公司VPN)

0 投票
0 回答
21 浏览

flask - 如何在 Flask API 中使用简单响应模式从 API 网关 Lambda Auth 访问 authorizer.claims

嗨,伙计们,我用了几天的时间,希望你们中的一些人能弄清楚

我有像这样的简单响应模式的 lambda 授权器。

我想将 JWT 令牌(user_id)中的值转发到我的 Flask API。

我的授权人工作正常,但我不知道在 Flask API 中访问 authorizer.claims。

我的 Flask 应用程序是这样的。

我使用 blueprint 和 app.before_request_funcs 作为中间件。

这是我想在我的 API 启动之前访问 authorizer.claims 以获取用户的地方。

如何访问 authorizer.claims

谢谢。

0 投票
1 回答
20 浏览

aws-lambda - 缓存 AWS Lambda Authenticator 响应时出现 500 错误

我正在使用无服务器堆栈,现在尝试添加 Lambda 自定义身份验证器以使用 Auth0 验证授权令牌,并在身份验证通过时将自定义数据添加到我的请求上下文中。

此时一切正常,除了当我缓存同一个令牌的 Authenticator 响应时。

我正在使用 5 秒缓存进行开发。具有有效令牌的第一个请求按原样通过。5 秒窗口中的下一个请求失败,出现一个神秘的 500 错误,而从未到达我的代码。

授权人配置

授权处理程序

CloudWatch 日志

在此处输入图像描述

☝️ 每个未缓存的请求都会成功,状态码为 200,集成 ID 和一切,正如它应该的那样。5 秒缓存期间的所有其他请求都会失败,并显示 500 错误代码并且没有集成 ID,这意味着它无法到达我的代码。


有小费吗?

更新

我刚刚在api-gateway.d.ts@types 文件中找到了这个(请注意评论):

在我让授权人首先工作之前,我确实遇到了这个问题。我将我的rolespermissions属性作为字符串数组,我必须将它们转换为纯字符串。然后它起作用了。

瞧,我现在刚刚运行了一个测试,删除了我为成功验证的令牌返回的上下文信息,现在缓存在 每个请求成功时都在工作,但我确实需要我的上下文信息......

也许上下文对象有一个最大长度?请让我知道对上下文对象的任何限制。正如@types 文件所述,这件事的文档记录很差。这是我知道的文档。