问题标签 [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.
cors - 从请求中剥离的 CORS 自定义标头
我正在使用基于令牌的 lambda 授权器,如下所述: https ://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
现在我仍在使用标题道具所在的玩具示例tokenHeader
我的获取如下:
当我查看网络选项卡时'tokenHeader':'allow'
,我的请求中缺少标头,导致授权方发出 401 - 我需要做些什么来防止此标头被剥离?
旁注:此请求适用于邮递员
API 网关配置(不确定这是否相关):
我不想忽略 CORS 并在两者之间发送数据account-api.example.com
,dev.example.com
所以请不要回答指示删除/忽略 cors——我的目标是正确实现 cors。
amazon-web-services - 无服务器 AWS - 是否值得使用自定义授权器(作为 lambda)?
嘿,我开始使用无服务器框架、apigateway、lambdas 和授权者。
这是我的问题:
为了验证正确的 JWT 令牌(这似乎是当今无服务器身份验证的最佳解决方案),我需要一个客户端 ID。由于授权者 lambda 不能(?)将请求的任何其他参数传递到 lambda 中,除了令牌本身,这是一项艰巨的任务。我怎样才能做到这一点?
由于每次经过身份验证的调用都会调用一个额外的 lambda,所以我的成本会翻倍?!可能是我在这里误解了一些东西,但在我看来,在不使用授权方的情况下实现一种验证我的令牌的方法更便宜,而且我不需要实现授权方 lambda 本身。
amazon-web-services - 在 API Gateway 中控制调用 Rest API 的访问权限
我有几个 API 网关资源,我想允许其他服务调用它们。假设我有这两个端点:
- /任务
- /环境
我的客户是一些服务,他们像以下请求一样调用这些 Rest API:(它是用 Javascript 编写的,但他们可以使用任何其他编程语言,但不能使用 AWS SDK)
我需要在客户调用我的 API 时检查他们的权限。当服务向 /tasks 发送请求时,我应该检查它的权限,看看它是否没有所需的权限,我将返回 403 作为响应。
我想知道实现它的最佳方法是什么?我应该使用与身份池集成的 AWS Cognito 用户池还是自定义授权方?
如果我的问题不够清楚,请发表评论,我会提供更多信息。
我希望有人有相关经验,可以帮助我。
aws-lambda - 部署到 AWS 时未调用无服务器 Lambda 授权程序
使用无服务器,我在 Node.js 中部署了一个带有多个 lambda 函数的 API 网关。我还使用 lambda 授权 (authenticate.js) 向一个 GET 端点添加了身份验证。我没有想法,所以任何帮助将不胜感激。我唯一能看到的是没有分配给授权人的 Lambda 调用角色。我没有找到任何关于如何将其添加到无服务器 yaml 的文档,但 Cloudwatch 日志没有显示任何授权方执行,所以我希望出现 403 或其他内容。
- 使用无服务器离线进行本地测试工作得很好
- 使用 Postman 在本地进行测试工作得很好
- 部署后,在 AWS 控制台中测试 lambda 就可以了
- 部署后,在 AWS 控制台中测试 API Gateway 方法就可以了
- 部署后,测试 authenticate.js Lambda 授权程序就可以了
- 部署后,在 Postman 中测试端点失败并返回以下错误:
无服务器.yaml:
Lambda 授权人:
aws-lambda - 带有自定义授权器的 lambda 可以使用控制台进行测试,但不能使用邮递员
我有一个 lambda 函数,可以在 AWS 控制台上进行测试。但是,一旦我在 Postman 上进行测试,它就会给我以下响应
我基本上在标题上有一个授权,带有一个像这样的不记名令牌
正文是空的,因为它只是一个 Get 端点。不确定我在邮递员的要求中遗漏了什么。任何建议表示赞赏。
node.js - API Gateway Authorizer - IAM 策略未缓存
我正在尝试缓存授权方 lambda 在第一次验证 JWT 令牌时返回的 IAM 策略。我已在 API Gateway Authorizer 中启用并将其设置authorizerResultTtlInSeconds
为3500
秒。但是,我仍然看到在缓存时间范围内发送到 Authorizer lambda 函数的请求。
我的 node.js 脚本如下:
不知道我错过了什么。任何帮助将非常感激!
amazon-web-services - 从网站调用我的 lambda 函数时授权配置异常
我在 S3 中托管了由 Cloudfront 提供服务的静态网站。我从我的网站通过 API 网关 Rest API 调用 lambda 函数。API 调用返回 200 ok 响应,一切正常,但有时调用失败并显示 X Amazon Header 中的消息读作授权人配置异常。我已经通过 API 网关在我的 Lambda 授权方中配置了 lambda 调用策略,并且还通过编辑我的授权方角色的信任关系启用了 API GATEWAY 调用。我仍然很少收到此错误。之前成功完成的 API 调用会在连续调用时抛出此错误。什么会导致此错误?我在这里想念什么?
amazon-web-services - 如何使用无服务器部署没有身份源的 API Gateway 自定义授权方?
我正在尝试使用无服务器框架在 API Gateway 中创建自定义 lambda 授权方。
我的服务的客户端可能会发送“授权”或“X-Custom”标头(但不能同时发送)。所以我需要的是一个没有身份源的自定义授权人。
狙击的无服务器 YAML 如下:
我正在使用以下请求模板,以便我的 lambda 获取标头并执行验证:
问题是当我运行无服务器部署命令时,授权方是使用“授权”身份资源创建的。
我的代码基于以下资源:
这让我想到了两个问题:
- 无服务器框架用于部署我的授权方的构造版本是什么?
- 如何在没有资源的情况下指定自定义授权方?
amazon-web-services - 仅在使用 Lambda 授权方的代理 API Gateway 请求上添加标头
目前,我有一个基于用户是否经过正确身份验证的服务器 HTML 的 AWS ApiGateway + Lambda 架构。我正在尝试实现这个 Cognito 和自定义 Lambda 授权器。我希望我的 Lambda 始终返回 HTML,并根据传递的 cookie,为登录/注销状态生成 HTML。在我看来,最好有一个单独的授权者来执行令牌验证并将标头传递给生成 HTML 的 Lambda。
怎么能做到这一点?
我正在使用 AWS Sam 模板来定义我的 CF 堆栈。查看我当前的模板:
在我的授权人(Typescript)中,我正在考虑生成一个始终具有“允许”效果的策略。但是,如果缺少授权令牌(尚未基于 cookie),则它已经返回 403。请参阅:
c# - AWS API Gateway Lambda 授权方请求类型没有 methodArn?
使用 C# 编写自定义 API Gateway Lambda 授权方,Im 使用REQUEST
授权方(不是 TOKEN)。查看他们的文档,我应该有一个可用的参数,methodArn
但查看APIGatewayProxyRequest
它未从他们的 SDK 中列出的类。
这是用于我的 lambda 授权方的正确输入参数吗?