API网关HTTP集成,如何传递授权标头?

时间:2019-12-17 17:21:56

标签: aws-api-gateway

我在“集成请求”中。我已经设置了HTTP集成类型和端点URL。 在下面,我看到“ HTTP标头”,但是如果我尝试添加标头,那么我将无法理解一个奇怪的“映射自”值。 设置HTTP代理集成会添加一个我也不了解的映射模板。

我只需要将原始请求中的Authorization:xxxx和X-Auth-Username:xxxxx传递给端点

找不到简单的方法...

我设置了HTTP代理集成,并添加了HTTP标头(并已部署):

 method.request.header.Authorization
 method.request.header.X-Auth-Username

我还根据需要在“方法”请求标头中根据需要添加了Authoriaxtion和X-Auth-Username。 但是调用api时出现错误:

Authorization header requires 'Credential' parameter. 
Authorization header requires 'Signature' parameter. 
Authorization header requires 'SignedHeaders' parameter. 
Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header

嗯,也许这是一个“命名”问题? 因此,我在方法请求中使用MyAuthentication更改了“授权”,然后在集成头中,将授权映射到

 method.request.header.MyAuthentication

现在,如果我在标头中使用MyAuthorization调用我的api,则会获得“缺少身份验证令牌”,而无需点击api服务器

2 个答案:

答案 0 :(得分:0)

以下是正确的...我正在调用原始api路径而不是te api网关路径。...

我设置了HTTP代理集成,并添加了HTTP标头(并已部署):     method.request.header.Authorization     method.request.header.X-Auth-Username

答案 1 :(得分:0)

enter image description here

单击“方法请求”,展开“HTTP 请求标头”并添加标头 Authorization 。现在返回并单击 'Integration Request' ,展开 'HTTP Headers' 并添加 Header Name Authorization 和 'Mapped from' method.request.header.Authorization 。基本上对于“方法请求”选项卡上的任何标题 XYZ 都应该在“集成请求” method.request.header.XYZ 上有相应的映射。