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

node.js - 当令牌过期时,是否可以将用户重定向回自定义授权器 api-gateway auth0 登录?

我一直在尝试自定义自定义授权方以在令牌过期时注销用户或将用户重定向到登录页面。我正在使用 auth0、api-gate,我对这两者都是新手,并且我正在使用 aws-node 和 jwt 来验证用户令牌。

这是我的 authorizer.js

在此先感谢,非常感谢您的帮助。如果我采取了错误的方法,请告诉我是新手,任何建议都非常感谢。再次感谢

0 投票
1 回答
1875 浏览

node.js - 在 AWS Lambda 上使用 jsonwebtoken 解码函数时出错

我正在构建一个 Lambda 授权方以与 API Gateway Web Socket api 一起使用。

为了处理令牌,我jsonwebtoken像这样使用和解码令牌:

当我在我的机器上本地运行它时,它可以正常工作,但是当它部署到 AWS 时它无法正常工作。

jwt.decode 调用正在返回null并且没有抛出异常。此外,我查看了文档,但找不到获取任何错误消息或类似内容的方法。

我做了一些日志记录,从请求中正确检索到令牌并传递给函数。此外,如果我从 AWS 日志中复制令牌并在本地运行我的代码,它工作正常。

我已经尝试过使用 Nodejs 运行时版本 8.10 和 10.x

关于如何解决此问题或如何获取错误消息以了解正在发生的事情的任何想法?

0 投票
1 回答
223 浏览

asp.net-core - 从 HttpContext 中提取自定义对象

语境

我正在重写一个 ASP.NET Core 应用程序,从在 lambda 上运行到在 ECS 容器上运行。Lambda 开箱即用地支持从 Cognito Authorizer 注入的声明,但 Kestrel 不支持。

API 请求通过 API 网关进入,其中 Cognito 用户池授权方正在验证 OAuth2 令牌并丰富从令牌到 httpContext 的声明。

最初,该应用程序在入口点继承的 lambda 上运行Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction,它提取这些声明并将它们添加到Request.HttpContext.User.Claims.

Kestrel 当然不支持这一点, AWS ASPNET Cognito 身份提供者似乎是为了执行授权人正在做的相同事情。

解决方案?

所以我想到也许我可以添加一些自定义代码来提取它。注入 lambda 的 HTTP 请求看起来像这样,所以我希望它在代理到 ECS 时应该是一样的

是否有可能,我该如何将所有键/值对从requestContext.authorizerto添加Request.HttpContext.User.Claims

0 投票
1 回答
1275 浏览

amazon-web-services - 设置授权方后,Cognito 用户池不显示 API 网关

我为调用 lambda 函数的 API 网关服务创建了 Cognito 用户池授权方。授权者被完全忽略,我可以在没有任何令牌的情况下调用服务。我已多次部署该服务。我创建了多个网关 API,但仍然看到相同的问题。

与我有授权器工作的旧 API 相比,我能看到的唯一区别是,当我检查 API 中的“资源”选项卡时。旧服务方法 (POST) 显示授权:COGNITO_USER_POOL,所有新 API 显示授权:无。API 网关有问题还是我错过了一个步骤。

0 投票
1 回答
828 浏览

python - 与 AWS Chalice 一起使用时,自定义授权器不起作用

我正在使用 AWS Custom Authorizer 来保护 lambda 函数。由于一些配置问题,我无法使用自定义授权方。

当我尝试从 API Gateway 控制台附加授权方时,它工作正常。当授权人从代码中附加时,它不会给出任何错误。我尝试检查 cloudwatch 日志,没有为 lambda 函数生成日志(对于授权者和 helloworld 函数)。

以下是我编写的示例代码:

我已配置以下策略:

我无法将授权方添加到 lambda 函数。当我触发端点时,它给了我以下错误:

端点:https://{rest-api-id}.execute-api.{region}.amazonaws.com/dev/test/test_authorizer

Http方法:GET

错误代码:500。

错误正文:{ "message": null }

我怎样才能做到这一点。请给我正确的情报。

0 投票
1 回答
554 浏览

node.js - AWS Lambda + 自定义授权方 + JWT + 黑名单令牌

我使用自定义授权器和 JWT ( jsonwebtoken) 创建无服务器应用程序。

我想添加列入黑名单的令牌。

怎么做最好?在哪里存放它们?如何在授权人中检查它们?

我在谷歌进行了研究,但没有找到好的解决方案。

0 投票
1 回答
755 浏览

aws-lambda - 请求无效 API 网关端点时返回更友好的响应正文

我正在使用无服务器框架来创建 API。端点在 serverless.yml 文件中定义,创建通过自定义 Authorizer 函数路由并解析为 Go Lambda 函数的 API Gateway 端点。

但是,如果客户端访问未明确定义的端点,则在Authorization标头中传入其 JWT 令牌,API 网关将返回403 Forbidden具有以下正文的响应:

403 Forbidden状态似乎合适,但我想在响应正文中向我的客户发送更易于理解的错误消息。

当请求无效端点时,有没有办法修改响应正文?

0 投票
1 回答
1616 浏览

amazon-web-services - AWS 无服务器自定义 jwt 授权方 lambda 设置 cors 响应

我有一个 rest api 部署在带有无服务器框架的 aws 上。

现在,我在其中创建了一个简单的 jwt 令牌自定义令牌授权器来授权我的端点。

这是我在 serverless.yml 中的路由定义 -

这是我的自定义授权者 tokenVerifier 函数定义 -

我还创建了一个响应助手实用程序,我在任何地方都使用它来向用户返回响应 -

因此,如您所见,我已将 cors: true 添加到路由 yml,并将 cors 标头添加到我的所有 lambda 响应中。在谷歌上,我遇到了这个答案,我也尝试将这些添加到 default_4xx、default_5xx 和过期令牌响应中 api gw 网关响应

但是,我仍然遇到同样的错误 -

那么,我在这里错过了什么吗?或者任何人都可以在这里帮助找到并解决这个问题?

0 投票
0 回答
705 浏览

python-3.x - 如何从 AWS Lambda 授权方 (python) 返回自定义消息?

在 lambda 授权程序中,拒绝访问、令牌过期等返回的 http 状态代码是 403。如果令牌过期,我如何返回消息“令牌过期”。

不支持 context.fail 方法。引发异常仅在 cloudwatch 中创建日志。

0 投票
1 回答
2115 浏览

aws-api-gateway - 带有 Lambda 授权方的 AWS API 网关

我正在尝试配置一个 API 网关,它从请求路径中获取代理参数,以及来自 Lambda 授权方返回的参数并将其放在标头中,以便可以将其传递给运行 Spring Boot 的 Elastic Beanstalk REST API。

代理路径按预期工作;我看到我的 Lambda 函数根据文档在“上下文”映射中返回变量“x-api-auth”。

唯一不起作用的部分是在请求标头中添加“x-api-auth”。:( 每当我运行我的 Jenkins 构建以更新 Cloudformation 堆栈时,我都会收到此错误:

这非常令人沮丧,我仔细检查了 OpenAPI 文档以确保我的语法正确。任何帮助或提示将不胜感激!

这是我拥有的 Cloudformation 模板: