问题标签 [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.
amazon-web-services - 根据用户令牌路由流量
我有一个应用程序,我想根据用户令牌将流量路由到不同的服务。也就是说,如果用户令牌存在于数据库表中,那么我想将其路由到服务 V1,否则将其路由到服务 V0。这是为了将客户从旧系统迁移到新系统。我想根据配置迁移几组客户。我认为这可以使用 AWS 网关和 lambda 授权器,但我想知道是否有更好的解决方案。如果解决方案适用于 traefik,那么它是最受欢迎的,因为我目前正在使用 traefik。
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。
node.js - 将公钥/策略存储在 Lambda 的 node.js 常量中是否安全
我正在 node.js 中编写 AWS lambda Authorizer。我们需要调用 Azure AD API 来获取公钥/安全策略来验证传入的访问令牌。
但是,为了优化性能,我决定将 node.js 中的公钥/安全策略存储为常量(这将一直有效,直到 Lambda 正在运行或密钥的 TTL 过期)。
问题:从安全角度来看,它安全吗?我想避免在 DynamoDB 中“缓存”它,因为对 DynamoDB 的调用也会产生额外的毫秒数。我们的应用程序是一个非常高流量的应用程序,我们希望节省任何可能的毫秒以获得最佳性能。此外,任何最佳实践也受到高度赞赏
aws-lambda - AWS Api Gateway lambda Authorizer 401 错误
我使用这种架构:
当我使用有效令牌调用 API 时,Cloudwatch(Nginx 容器)出现错误:
在此迁移(cognito 到 Azure AD B2C)之前,我将 Cognito 与 AWS Api Gateway 一起使用,它运行良好。
此外,在我没有 API 网关和 Nginx 代理的本地电脑上,它工作正常。
谢谢您的帮助
javascript - AWS 授权方返回 500,消息:null,响应中有 AuthorizerConfigurationException 错误
我今天大部分时间都在尝试让授权者工作,我检查了多个示例,它们似乎都在做我的代码所做的同样的事情。
我使用无服务器框架,这是授权代码:
这是无服务器配置
}...
当令牌正确并且我返回对象时,我总是得到 500 响应,所以我猜返回对象有问题?
如果令牌不正确并且我抛出“未经授权”,那么我会得到正确的 401 响应。
aws-lambda - 在通过 API 网关公开的无服务器函数中使用 lambda 授权器
我写了一个 lambda 授权器,它以这种格式返回响应 -
注意-我的授权人的名字是verifyToken
在我不同的微服务(即活动日志) serverless.yml 文件中,我这样称呼它 -
我已经单独检查了我的授权人,它正在工作并返回 200 和上述响应。同样,我的微服务在没有授权的情况下工作。但是当在 getActivityLogs 中启用授权时,它不会让我的活动日志执行单行
amazon-web-services - 更新 AWS API Gateway 的 lamda 授权器仍然是指旧的授权器
我为 API 创建了一个授权方并将其部署在 AWS 中。后来我创建了另一个授权者,并用新的授权者附加了 API 网关。但是在调用 API 时,它仍然使用旧的授权方。我应该怎么做才能使旧的无效?
注意:我也需要旧的用于不同的 API 调用,因此其中有两个授权者。
GET - /api/users 使用管理员授权器
PUT - /api/users/{username} 使用用户授权器
amazon-web-services - AWS API Gateway Authorizer - 允许 Cognito UserPool 身份验证(通过标头)和公共访问
我有一个 REST API 端点,它根据请求的主体处理多个操作。其中一些操作是“仅限管理员”,因此我添加了一个链接到我的 Cognito 用户池的 JWT 授权方,以允许我检查用户是否是管理员。但是,现在每个请求都必须通过Authorization
标头提供 JWT - 未经身份验证的请求不起作用并遇到{"message":"Unauthorized"}
错误。
有什么方法可以阻止授权者阻止所有未经身份验证的流量?
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 错误。
任何帮助,将不胜感激。谢谢