AWS API Gateway提供an option以通过Lambda函数使用自定义授权。在此方法中,用户需要配置自定义标头名称(例如:Auuthorization或Auth)。此标头值由Gateway提取并传递给Lambda事件。
但是,Gateway正在敏感地搜索传入的标头。即,如果用户将标头指定为授权而不是授权,则网关返回401.为什么在http协议声明标头可以不区分大小写时,此搜索情况敏感。
答案 0 :(得分:5)
是的,这是客户授权人员的已知问题,也是API网关中的标头映射功能。标题匹配区分大小写,正如您所说的那样违反规范。我没有ETA来解决这个问题,但这是一个我们想要解决的已知问题。
编辑:现在应该解决了。自定义授权程序标头匹配不区分大小写。
答案 1 :(得分:0)
我怀疑你可能在“身份令牌源”字段中有method.request.header.Authorization而不是method.request.header.authorization(见附图)。也许这不是AWS没有遵循标题标准的问题,而是它与你告诉它要寻找的相匹配......
Check out this image for header matching settings
不知道您是否可以在API网关使用的其他标头请求/响应匹配字段中使用不区分大小写的正则表达式。也许像/(?i)授权/。 (纯粹猜测)
另见: