问题标签 [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 - 每次设备连接并发送数据时,是否使用带有 aws-iot (wss) 的自定义授权方创建一个新设备?
考虑到有大量移动设备(Android 和 iOS)需要通过 MQTT自定义授权器向 AWS-IoT 发送数据,以根据业务逻辑检查有效令牌,这将被实施。
参考具有 AWS IoT 和 Websockets 的 IoT 应用程序,幻灯片 56/60 显示了注册过程,其中 lambda 用于创建和附加策略。
这是否表明 lambda 将创建一个新的 AWS-IoT 设备并将策略附加到该设备?每次新用户注册时,这会导致创建新的 AWS-IoT 设备?
websocket - 如何使用 CloudFormation for API Gateway 为自定义 websocket 请求授权者创建 lambda 权限?
我一直在尝试为 API Gateway 和 $connect 路由的 websockets 请求授权器创建 lambda 权限。AWS 文档没有提到为 websocket 授权者创建正确的 lambda 权限。当我尝试连接到我的自定义授权方时,我不断收到 500 错误。
由于 AWS 文档(https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-lambda-auth.html)没有提及有关此权限的任何内容,因此我认为必须创建一个 lambda 权限,就像一个 TOKEN 授权者。
自定义授权人是使用我的 CloudFormation 脚本创建的,如下所示:
当我使用控制台手动创建授权方时,最后会收到以下提示:
一旦我将它与 $connect 端点连接起来,这个手动创建的授权器就可以工作。
所以,我试图在我的 CloudFormation 脚本中设置这个权限。我尝试了以下设置,但它不起作用。我不断收到 500 错误:
有人知道 websocket API Gateway $connect 端点的自定义授权者的正确 lambda 权限设置吗?
amazon-web-services - AWS 自定义授权方超时
我有使用 serverless-http 创建快速服务器的无服务器 lambda 函数 (AWS)。我用来验证请求的自定义授权器在成功运行后超时。以下是根据 CloudWatch 日志返回的策略:
2019-02-27T12:06:49.000Z 7b138c38-b316-4ae0-97ad-36242833cefa 策略 [ { 操作:'execute-api:Invoke',效果:'允许',资源:'arn:aws:execute-api:eu -west-1:xxxx:xxxx/dev/GET/data/age' } ]
在此之后我得到这个日志:
2019-02-27T12:06:54.778Z 7b138c38-b316-4ae0-97ad-36242833cefa 任务在 6.01 秒后超时
我应该在 auth 之后执行的函数甚至没有被调用。我正在使用 async/await 来针对标头中的授权令牌获取业务。
这是我的授权人代码:
generatePolicy
功能:
serverless.yml
:
serverless-offline
注意:如果我使用插件在本地运行它,同样的工作。
amazon-web-services - 在 AWS Api 网关自定义授权方中,如何根据对标头的验证将自定义标头添加到输入请求并发送到后端
在 AWS API 网关中,我使用自定义 lambda 授权器来验证请求标头。我需要根据验证结果更新现有标题或添加新标题。下面是 java 中的 lambda 授权逻辑,验证按预期工作。无论更新标头值,后端 lambda 中接收到的事件对象都是空的。
您能否告诉我如何配置授权方,以便在成功授权后将 API 网关请求的输入请求发送到集成服务。
asp.net-core - 从 lambda 授权方响应中提取身份
我制作了一个自定义 lambda 授权器来验证 JWT 并返回Allow
策略。
现在我需要在我的资源服务器上使用这个身份。
问题是我在授权人上下文中提出的声明authorizer
直接出现在
但我Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction
希望那些在authorizer.claims
.
像这样:
我知道这一点,因为当我使用内置的 Cognito 用户池授权器时它正在工作,它正在输入这样的输入。
我设法发现不允许 Lambda Authorizer 将嵌套对象添加到上下文中(并测试authorizer error
如果我这样做它会抛出。)
我还发现,在APIGatewayProxyFunction
提取身份时,它会查看 Authorizer.Claims。
因此,我需要以某种方式绕过Claims
属性在我的资源服务器上提取它们,或者将嵌套对象添加到授权方响应中,这是不允许的。
做什么?
amazon-web-services - AWS Custom Lamba Authorizer 第二次为来自客户端的单个请求调用了两次空事件对象
我已经配置了一个 REQUEST 类型的自定义 lambda 授权器。我在 API --> Authorizers --> Identity Sources 和 1 个默认授权中添加了 4 个新的自定义请求标头作为身份源。所以总共有5个。
当我调用配置了上述授权方的 API 时,授权方被调用了两次。第一次使用事件对象中所有参数的值,第二次使用空事件对象。
由于事件对象为空,即使第一次成功验证声明并返回允许策略,我的代码也会抛出空指针。
最初我尝试使用令牌类型授权器,但仅令牌本身不足以让我验证。令牌类型工作得很好。即没有第二次请求。当我改用 REQUEST 类型时,我开始看到这个问题。
以下是来自 cloudwatch 的日志
python - AWS 自定义 Lambda 授权方:基于具有相同前导 URL 的 URL 参数允许和拒绝
我正在为 AWS API Gateway 编写自己的 AWS 自定义 Lambda 授权程序。我需要允许以下 URL:
但在同一政策中,我也想拒绝以下 URL。
我查看了政策条件,但找不到将 URL 参数detail
放入条件的方法。
有谁知道如何做到这一点的详细信息?
amazon-web-services - AWS API Gateway 忽略从自定义授权方 Lambda 函数返回的身份验证策略
我正在尝试在 API Gateway 上实现自定义授权,这将通过从 DynamoDB 读取用户对其背后每个特定端点的权限来检查它们。
授权人似乎工作正常,它返回的策略对我来说看起来不错(看看下面)
但是,无论策略文档中返回的 Effect 授权者如何,API Gateway 仍然让所有请求都通过。我从下面的 API 端点获得状态 200 以及结果集。
关于 API 网关为什么会忽略该策略的任何想法?
PS 在放星号之前,我尝试使用显式的 principalID(令牌中的用户名/主题)。它的行为相同。
PPS 这是我的 Lambda 函数的完全简化版本,当前设置为始终返回 Deny 作为策略效果......
aws-lambda - 如何将 lambda 授权信息的输出传递给 AWS API 网关中的另一个 lambda 函数?
我使用 C# 创建了两个 Lambda 函数。一个是授权,另一个是执行一些业务逻辑。
我已将第一个 Lambda 函数配置为 API 网关授权者,将第二个函数配置为资源。
如何将第一个 lambda 函数的响应传递给 API 网关请求,以便第二个可以读取并继续剩余处理?
谢谢萨蒂亚
aws-lambda - Lambda 授权方不尊重资源
我正在生成以下缓存策略:
然后我提出请求arn:aws:execute-api:us-east-1:12345:hahd712723/active/GET/v1/AccountB'
这应该产生:
但不是新的缓存集,而是我错误地获得了拒绝策略。
似乎主要 Id 是唯一看到的东西,并且资源不受尊重。