gpt4 book ai didi

amazon-web-services - 授权 header 代替 x-api-key

转载 作者:行者123 更新时间:2023-12-05 06:09:12 25 4
gpt4 key购买 nike

我目前已经使用 AWS 创建了一个 API 网关。此网关需要存储在 AWS 上的 API key 。据我所知,在 header 中传递此 key 的正确方法是使用 x-api-key。为了连续性,我希望有一种方法可以使用 key Authorization 而不是 x-api-key 在 POST 的 header 中传递 key 。从我读过的内容来看,由于此网关托管在 aws 中,x-api-key 是传递 key 的唯一方法。有解决方法吗?

最佳答案

Lambda 授权方

在我看来,如果您坚持惯例会更容易,要更改它实际上需要做一些工作。您需要创建一个 Lambda 授权方。这将是一个 Lambda 函数,它将为您的网关返回给定请求的 iam 策略,还有一个可选的 context。此上下文可以包含应使用的 API key ,但您需要记住您的 Lambda 函数执行授权,此 key 仅在我认为的使用计划中使用。

因此总结一下,当您创建授权方时,您将选择在您的情况下使用的 header Authorizaion 。在您的 Lambda 函数中,您在此处引用此 header :event.authorizationToken。使用该 header 构建您的 iam 策略,这可能意味着您需要手动查找此 API key (如果它确实可以访问您的 API)。您的 Lambda 函数还需要设置 api-key$context.authorizer,其中包含您要使用的 api key ,在您的情况下为 event.authorizationToken。这会将 UsagePlan 应用于您的 API。

云端

另一种选择是在您的 API 前面创建一个 CloudFront 分配,然后您自己手动添加 header 。这可能会花费更多,因为您将需要 CloudFront 分配,然后您的 Lambda@Edge 将针对每个请求执行。与可以缓存的 Lambda 授权方相反。你可以找到一个例子 here .

关于amazon-web-services - 授权 header 代替 x-api-key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64900022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com