gpt4 book ai didi

amazon-web-services - 在 API 网关中使用 AWS Lambda 授权方

转载 作者:行者123 更新时间:2023-12-04 15:41:43 27 4
gpt4 key购买 nike

我将我的 WEB API 托管在 Docker 中。我的 Angular 客户端将发送一个 JWT token 来访问这些 API 中的任何一个。我想在调用请求的 API 客户端之前使用 AWS API Gateway 功能添加授权检查。从 docs 我看到我们可以利用 Lambda Authorizer 概念来实现这一点。但是话又说回来,当我可以想出一个可以验证用户的 DOT NET CORE API 时,为什么要使用 Lambda Authorizer。

  1. 我的 Lambda 网关对我的情况有意义吗?
  2. 如果是,lambda Authorizer 的输出是什么?一个简单的真/假判断 token 是否有效?

我看到这就是响应应该/可能的样子。就我而言,这应该如何转化为

{
"policyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "execute-api:Invoke",
"Resource": [
"arn:aws:execute-api:us-east-1:1234567:myapiId/staging/POST/*"
],
"Effect": "Allow"
}
]
},
"principalId": "Foo"
}
  1. 执行 Lambda 授权程序后,API 网关中应该发生什么?谁调用客户请求的我的实际 API?

最佳答案

如果您使用的是 Lambda 授权方,则返回 AllowDeny政策就是您要找的。

这实质上是授予 API 网关调用底层目标的权限。我知道乍一看这听起来很奇怪,但这就是它的工作原理。想想 Allow政策作为 true返回语句(凭证匹配)之类的东西,同时 Deny政策更像是false返回语句(凭据不匹配/根据您的规则没有足够的权限等)。

要让您开始工作,您只需复制/粘贴 docs 中提供的代码即可。并根据您的喜好修改身份验证方式(文档显示了一个使用带有 AllowDeny 值的 header 的示例,这绝对不是您想要的,这只是为了举例)。

因此,通过列举所有答案回到您的问题:

  1. 是的,但它被称为 Lambda 授权方而不是 Lambda 网关
  2. AllowDeny分别针对有效/无效 token 的策略。
  3. 如果 Lambda 授权方以 Allow 响应策略,然后它将调用目标(可以是 Lambda 函数、SNS 主题、HTTP 端点 - 这可能是您的情况 - 等等)。授权者将仅充当拦截器并决定是否将调用代理到目标。

关于amazon-web-services - 在 API 网关中使用 AWS Lambda 授权方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57623991/

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