swagger3 设置值可以为空_如何使用Swagger在API网关上全局设置API密钥安全性

本文档探讨了在Swagger3中为API网关设置全局API密钥安全性的挑战。导入OpenAPI文件时遇到警告,指出需要在每个路径中单独设置安全字段。作者寻求一种全局解决方案,而不是为每个路径指定安全字段或使用自定义授权程序。问题涉及到`x-amazon-apigateway-auth`扩展的使用,但相关文档缺失。提供的示例展示了如何在OpenAPI定义中设置API密钥安全性,但未能按预期工作。
摘要由CSDN通过智能技术生成

我试图将openapi/swagger文件导入到api网关,但无法按预期获得安全设置。我想要所有路径都需要一个api密钥。

导入后在控制台中设置它所需的api密钥是可行的,但是这个解决方案是不可取的,同样有效的是在每个路径中单独设置安全字段,但是我正在寻找全局解决方案。

当我尝试导入文件时,收到以下警告:

Your API was not imported due to errors in the Swagger file.

Method 'GET' on resource '/' specified security,

but no custom authorizers were created and the extension

x-amazon-apigateway-auth was not set.

This method will be not be secured.

从外观上看,我要么需要一个lambda作为一个自定义授权程序,仅用于api密钥(我不熟悉授权程序,但如果在控制台中设置所需的api密钥时不需要授权程序,这似乎没有意义);要么我需要对这个神秘的

x-amazon-apigateway-auth

我找不到它的文档(所有其他的openapi扩展amazon都记录了

here

下面是一个minimal示例:

openapi: 3.0.1

info:

title: test

version: 0

servers:

- url: "/"

security:

- ApiKey: []

paths:

"/":

get:

# if I copy the security part into here things work

responses:

'204':

description: no content

x-amazon-apigateway-integration:

httpMethod: GET

type: http

uri: https://httpstat.us/204

components:

securitySchemes:

ApiKey:

type: apiKey

name: x-api-key

in: header

x-amazon-apigateway-api-key-source: HEADER

由于api密钥安全性是在根级别设置的,这就向我建议,所有路径都应该使用api密钥(除非被单个路径覆盖),实际发生的情况是上述警告,并且在导入时不需要api密钥。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值