针对匹配模式的 aws api 网关标头验证
Posted
技术标签:
【中文标题】针对匹配模式的 aws api 网关标头验证【英文标题】:aws api gateway header validation against matching pattern 【发布时间】:2019-07-20 11:14:54 【问题描述】:我正在使用 terraform 和带有 swagger 的 openAPI 规范创建一个 AWS API 网关。我需要添加一个请求验证器,以根据匹配模式 [a-zA-z0-9]10 验证标头。我能够设置基本验证器来检查标头是否为空,但无法使用模式进行验证。
"x-amazon-apigateway-request-validators" :
"full" :
"validateRequestBody" : true,
"validateRequestParameters" : true,
"validateRequestHeaders" : true
,
"body-only" :
"validateRequestBody" : true,
"validateRequestParameters" : false
,
"x-amazon-apigateway-request-validator" : "full",
"paths":
"/validation":
"get":
"parameters": [
"in": "header",
"name": "x-request-id",
"required": true,
"type": "string",
"pattern" : "^[a-z0-9]10$"
,
"in": "query",
"name": "name",
"required": true,
"type": "string",
"pattern": "^[a-zA-Z]5$"
]
请建议是否有任何方法可以实现这一目标
【问题讨论】:
【参考方案1】:我可以根据您的要求建议一种解决方法。您可以使用“基于请求”Lambda authorizer 并在 Lambda 函数中实现验证逻辑。如果您只需要验证一个标头,您也可以使用“基于令牌”的 Lambda 授权方并指定一个令牌验证正则表达式。
一旦 Lambda 函数确定传入的标头是否有效,它就可以授予对 API 的访问权限。
您可以查看如何Configure a Lambda Authorizer Using the API Gateway Console。
【讨论】:
以上是关于针对匹配模式的 aws api 网关标头验证的主要内容,如果未能解决你的问题,请参考以下文章
修复 AWS API 网关不存在的 CORS“对预检的响应 ...”标头并放大
获取不存在“Access-Control-Allow-Origin”标头 AWS api 网关
如何针对我的 AWS Api Gateway 对后端服务进行身份验证