【问题标题】:API Gateway HTTP integration, how do I pass the authorization header?API Gateway HTTP 集成,如何传递授权标头?
【发布时间】:2020-04-10 05:56:45
【问题描述】:

我在“集成请求”中。我已经设置了 HTTP 集成类型和端点 URL。 下面,我看到“HTTP 标头,但如果我尝试添加标头,则会出现一个奇怪的“映射自”值,我不明白。 设置一个 HTTP Proxy 集成添加一个 Mapping 模板我也不懂。

我只需要将原始请求中的 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 更改了“授权”,在集成 Header 之后,我将 Authorization 映射到

 method.request.header.MyAuthentication

现在,如果我在标题中使用 MyAuthorization 调用我的 api,我会得到“缺少身份验证令牌”,而不会访问 api 服务器

【问题讨论】:

    标签: aws-api-gateway


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-01-19
        • 2020-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-18
        • 2011-06-08
        • 2017-05-18
        相关资源
        最近更新 更多