首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >取代x-api-key的Authorization头

取代x-api-key的Authorization头
EN

Stack Overflow用户
提问于 2020-11-18 19:27:21
回答 1查看 572关注 0票数 2

我目前已经使用AWS创建了一个API网关。此网关需要存储在AWS上的API密钥。据我所知,在头部中传递此密钥的正确方法是使用x-api-key。为了连续性,我希望有一种方法可以使用key Authorization而不是x-api-key在帖子的标题中传递密钥。据我所知,由于此网关托管在亚马逊网络服务中,因此x-api-key是传递密钥的唯一方式。有什么解决方法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 00:25:39

Lambda授权程序

如果你只是坚持这个约定,那就更容易了,要改变这一点实际上需要一些工作。您需要创建一个Lambda Authorizer。这将是一个Lambda函数,它将向您的网关返回给定请求的iam策略,但也是一个可选的context。这个上下文可以包含应该使用的API密钥,尽管您需要记住您的Lambda函数执行授权,但这个密钥只在我相信的使用计划中使用。

因此,总而言之,在创建授权器时,您将选择在本例中使用的Authorizaion标头。在Lambda函数中,这里引用了这个头文件:event.authorizationToken。使用这个头构建您的iam策略,这可能意味着您需要手动查找此API,如果它确实可以访问您的API。您的Lambda函数还需要将api-key设置为$context.authorizer,它包含您想要使用的api,在本例中为event.authorizationToken。这将把UsagePlan应用于你的应用程序接口。

CloudFront

另一种选择是在你的应用程序接口前面创建一个CloudFront发行版,然后自己手动添加头部。这可能会花费更多,因为您将需要一个CloudFront发行版,然后您的Lambda@Edge将针对每个请求执行。而不是可以缓存的Lambda Authorizer。您可以找到一个示例here

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

https://stackoverflow.com/questions/64900022

复制
相关文章

相似问题

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