如何针对我的 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”
如何使用 terraform 在 AWS API Gateway method_response 中指定内容类型标头?
如果在 Terraform 模块中创建了 aws_api_gateway_integration,如何在 aws_api_gateway_deployment 资源上填充depends_on?