API网关上的API密钥以与斜杠命令一起使用

时间:2019-06-19 08:44:13

标签: aws-lambda aws-api-gateway slack slack-api

我正在创建一个新的Slack应用程序,该应用程序基本上接受斜杠命令。它已经在工作,但是我想使用API​​密钥保护我的API。已经配置了API密钥+使用计划,但不确定如何在松弛侧使用它。

我基本上需要发送一个setHasFixedSize(false)头,但是从Slack方面看来这是不可能的?

根据您的命令,拥有仅依赖于松弛验证令牌的开放API似乎很有风险...

有没有办法做到这一点?仅使用令牌和团队ID进行验证。

2 个答案:

答案 0 :(得分:1)

按照您的建议,无法向来自x-api-key之类的Slack的请求中添加自定义标头。

保护API的标准方法是使用“签名机密”,而不是验证令牌。验证令牌是一种较旧的安全功能,仍然可以使用,但安全性较低,因此不再推荐。

签名的机密将使用标准的HMAC-SHA256键控哈希使用生成的密钥对Slack的每个请求进行密码签名。您可以在应用程序配置页面上找到该密钥。

请查看此documentation,以获取有关如何使用签名机密的更多详细信息。

答案 1 :(得分:0)

API网关允许您配置Velocity模板以重新映射HTTP请求。您可以将API密钥配置为查询参数,作为在Slack应用程序配置中指定的Webhook的一部分(只要使用HTTPS即可确保安全),然后将其定向到不需要密钥的端点。然后将查询参数重新映射到x-api-key标头,并转发到已认证的端点。