如何针对我的 AWS Api Gateway 对后端服务进行身份验证

Posted

技术标签:

【中文标题】如何针对我的 AWS Api Gateway 对后端服务进行身份验证【英文标题】:How can I authenticate a backend service against my AWS Api Gateway 【发布时间】:2020-03-04 23:18:13 【问题描述】:

我在 aws api 网关后面运行了一个 lambda 函数,它充当我网站的后端。它使用认知授权器来验证我网站的用户。这工作正常。

现在我需要针对未在云中运行且没有用户交互的 api 对 c# 后端服务进行身份验证。它应该只是同步数据。

我最初的计划是配置 cognito 凭据并通过 cognito sdk 登录云,但这是不可能的,因为应用程序需要开发人员访问我的云。

我也考虑过使用 api gateway api 密钥,但那时我仍然需要 cognito 身份验证。

那么,如何在不需要用户交互的情况下针对我的 aws api 验证我的 c# 服务?

【问题讨论】:

【参考方案1】:

您可以使用 Cognito 用户池身份验证。

这是一个 OpenID 实现,其中 Cognito 发布 JSON Web 令牌 (JWT),其中 JWT 的签名可以通过公共端点进行验证。

在 API Gateway 的上下文中,您可以使用 Lambda 作为自定义授权方,但可以使用相关 JWT 库在任何环境/语言中验证令牌。

更多阅读:Verifying a JWT issued by Cognito

【讨论】:

以上是关于如何针对我的 AWS Api Gateway 对后端服务进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AWS Cloudformer 为现有 API Gateway 创建云形成模板?

如何调试 AWS Api Gateway 和 Lambda 的“AWS/ApiGateway 5XXError”

AWS Api Gateway 中的速度:如何访问对象数组

如何使用 terraform 在 AWS API Gateway method_response 中指定内容类型标头?

如果在 Terraform 模块中创建了 aws_api_gateway_integration,如何在 aws_api_gateway_deployment 资源上填充depends_on?

如何将 AWS CloudFront 和 API Gateway 并排用于同一个域?