首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果字段不匹配,则使用AWS Api网关拒绝来自Slack的应用程序/x-www-urlencoded调用

如果字段不匹配,则使用AWS Api网关拒绝来自Slack的应用程序/x-www-urlencoded调用
EN

Stack Overflow用户
提问于 2017-10-05 23:12:58
回答 2查看 193关注 0票数 0

我有来自Slack的外发webhook的POST请求,这些请求通过API Gateway到达AWS Lambda函数。出于安全考虑,我希望在请求到达我的lambda函数之前使用API网关对其进行过滤,以减少lambda函数被调用的次数。

从技术上讲,呼叫来自哪里,或去往哪里都无关紧要。

我的问题的核心是,如果字段不符合我的期望,我想知道如何使用AWS API Gateway过滤/拒绝Api调用。

例如,考虑下面的json。

代码语言:javascript
运行
复制
{
  "body": "token=specificToken&someOtherField=someValue"
}

如果token字段与预期的"specificToken“值不匹配,我希望拒绝该请求。

EN

回答 2

Stack Overflow用户

发布于 2017-10-06 00:21:13

您可以使用REQUEST类型的自定义授权器来执行此操作。REQUEST-type自定义授权器可以使用请求正文对请求进行授权。

引用:Create an API Gateway Custom Authorizer Lambda Function (向下滚动到REQUEST类型)

基本上,您可以编写另一个Lambda,作为您的API网关之间的中间件。此自定义授权器将决定是允许请求还是将Unauthorized返回给接口网关。

票数 1
EN

Stack Overflow用户

发布于 2018-11-07 20:32:17

我们有相同的需求(使用lambda授权器验证来自slack的请求),不幸的是,REQUEST类型不能访问请求的body。标头、路径、查询字符串...但不是身体。这似乎是设计出来的。参见Access POST Request body from Custom Authorizer Lambda Function

我们尝试了一个自定义的主体映射模板,将值从主体中拉出并放入头中,但映射是在授权之后应用的,所以这不起作用。

最后,我们决定将自己的令牌放入斜杠命令调用的webhook的查询字符串中,并进行验证,这在REQUEST授权器中是可能的。虽然不是很安全,但还是很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46589117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档