问题标签 [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 回答
32 浏览

amazon-web-services - 根据用户令牌路由流量

我有一个应用程序,我想根据用户令牌将流量路由到不同的服务。也就是说,如果用户令牌存在于数据库表中,那么我想将其路由到服务 V1,否则将其路由到服务 V0。这是为了将客户从旧系统迁移到新系统。我想根据配置迁移几组客户。我认为这可以使用 AWS 网关和 lambda 授权器,但我想知道是否有更好的解决方案。如果解决方案适用于 traefik,那么它是最受欢迎的,因为我目前正在使用 traefik。

0 投票
0 回答
24 浏览

amazon-web-services - 如何为两个不同的 API 使用 apigateway 授权方

我计划为我的应用程序的不同部分创建不同的 API,假设一个 API 用于用户管理,另一个用于我的演示。我想通过使用我在用户管理中创建的授权器来保护我的演示 API。现在你能告诉我我能做到吗?我画我在想什么。我想通过在 API Auth 中使用 Authorizer 来实现设计 1 并处理 API 演示。有可能还是我的设计错了?我确定我可以用设计 2 做到这一点,但如果我能在设计 1 中做到这一点,那就太好了。

我正在使用 yaml、开放 API 和节点 js。

在此处输入图像描述

0 投票
0 回答
92 浏览

aws-api-gateway - Lambda Authorizer Policy 不限制对 Api Gateway 代理资源的访问

我有一个 Lambda 授权方 (python),它返回类似于以下内容的基于资源的策略:

基本上,这个授权者会默认返回一个不受限制的 api 资源策略,使用*. 但是,如果传递了特定的标头值,则策略会将访问限制为仅允许GET /a

在 ApiGateway 方面,我拥有的唯一资源是使用ANY /{proxy+}APIGatewayProxyFunction代理到 .NET Core WebApi 的资源。在 APIGatewayProxyFunction/WebApi 内部,我有许多可用的控制器和路由,包括GET /a. my-header在将所有这些部署到 AWS 之后,我可以使用with value构造一个 http 请求a。我希望此请求仅提供对 的访问GET /a,并在所有其他情况下返回 403。相反,它提供对 api 中所有内容的访问,类似于星号策略。

这是在代理资源前使用 Lambda Authorizer 时的预期行为吗?它似乎真的只强制执行Allow *or Deny *。谢谢你。

注意 - 当对 Api 网关使用相同的授权方时,其中定义了所有资源(而不是通过代理在 .NET 控制器内部),预期的行为似乎确实发生了 -my-header设置为“a”的 http 请求将授予访问权限GET /a, 但否则返回 403。

0 投票
1 回答
57 浏览

node.js - 将公钥/策略存储在 Lambda 的 node.js 常量中是否安全

我正在 node.js 中编写 AWS lambda Authorizer。我们需要调用 Azure AD API 来获取公钥/安全策略来验证传入的访问令牌。

但是,为了优化性能,我决定将 node.js 中的公钥/安全策略存储为常量(这将一直有效,直到 Lambda 正在运行或密钥的 TTL 过期)。

问题:从安全角度来看,它安全吗?我想避免在 DynamoDB 中“缓存”它,因为对 DynamoDB 的调用也会产生额外的毫秒数。我们的应用程序是一个非常高流量的应用程序,我们希望节省任何可能的毫秒以获得最佳性能。此外,任何最佳实践也受到高度赞赏

0 投票
1 回答
47 浏览

aws-lambda - AWS Api Gateway lambda Authorizer 401 错误

我使用这种架构:

当我使用有效令牌调用 API 时,Cloudwatch(Nginx 容器)出现错误:

在此迁移(cognito 到 Azure AD B2C)之前,我将 Cognito 与 AWS Api Gateway 一起使用,它运行良好。

此外,在我没有 API 网关和 Nginx 代理的本地电脑上,它工作正常。

谢谢您的帮助

0 投票
1 回答
196 浏览

javascript - AWS 授权方返回 500,消息:null,响应中有 AuthorizerConfigurationException 错误

我今天大部分时间都在尝试让授权者工作,我检查了多个示例,它们似乎都在做我的代码所做的同样的事情。

我使用无服务器框架,这是授权代码:

这是无服务器配置

}...

当令牌正确并且我返回对象时,我总是得到 500 响应,所以我猜返回对象有问题?

如果令牌不正确并且我抛出“未经授权”,那么我会得到正确的 401 响应。

0 投票
1 回答
107 浏览

aws-lambda - 在通过 API 网关公开的无服务器函数中使用 lambda 授权器

我写了一个 lambda 授权器,它以这种格式返回响应 -

注意-我的授权人的名字是verifyToken

在我不同的微服务(即活动日志) serverless.yml 文件中,我这样称呼它 -

我已经单独检查了我的授权人,它正在工作并返回 200 和上述响应。同样,我的微服务在没有授权的情况下工作。但是当在 getActivityLogs 中启用授权时,它不会让我的活动日志执行单行

0 投票
0 回答
17 浏览

amazon-web-services - 更新 AWS API Gateway 的 lamda 授权器仍然是指旧的授权器

我为 API 创建了一个授权方并将其部署在 AWS 中。后来我创建了另一个授权者,并用新的授权者附加了 API 网关。但是在调用 API 时,它仍然使用旧的授权方。我应该怎么做才能使旧的无效?

注意:我也需要旧的用于不同的 API 调用,因此其中有两个授权者。

GET - /api/users 使用管理员授权器
PUT - /api/users/{username} 使用用户授权器

0 投票
1 回答
64 浏览

amazon-web-services - AWS API Gateway Authorizer - 允许 Cognito UserPool 身份验证(通过标头)和公共访问

我有一个 REST API 端点,它根据请求的主体处理多个操作。其中一些操作是“仅限管理员”,因此我添加了一个链接到我的 Cognito 用户池的 JWT 授权方,以允许我检查用户是否是管理员。但是,现在每个请求都必须通过Authorization标头提供 JWT - 未经身份验证的请求不起作用并遇到{"message":"Unauthorized"}错误。

有什么方法可以阻止授权者阻止所有未经身份验证的流量?

0 投票
0 回答
41 浏览

aws-lambda - 使用 Lambda Authorizer 和 Nodejs docker 容器的 AWS Api Gateway `Cors Error`

AWS Api 网关返回 Cors 错误,我正在使用 Lambda Authorizer 验证 JWT 令牌,它工作正常,但是当控制权传递给在 docker 容器内运行的 NodeJs api 时,API 网关返回“Cors 错误”。

发现:

  • 如果我禁用 Lambda Authorizer,则 NodeJs Api 返回响应。
  • 如果我从 AWS 控制台面板中测试 Authorizer,则如果令牌有效则返回 Allow,如果令牌无效则返回 Deny
  • 从后端命中时,相同的 api 端点与相同的授权者一起工作
  • 但是当从 reactJs 前端命中时,相同的 api 端点面临 Cors 错误。

任何帮助,将不胜感激。谢谢