Jon*_*ing 5 amazon-web-services swagger aws-api-gateway openapi
我正在尝试将 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.
Run Code Online (Sandbox Code Playgroud)
如此看来,我要么需要一个 lambda 作为仅用于 api 密钥的自定义授权方(我不熟悉授权方,但如果我在设置所需的 api 密钥时不需要授权方,这似乎没有意义控制台);或者我需要对这个神秘的东西做一些x-amazon-apigateway-auth我找不到文档的事情(亚马逊在此处记录了所有其他 openapi 扩展)。
一个小例子如下:
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
Run Code Online (Sandbox Code Playgroud)
由于 api 密钥安全设置在根级别,这向我建议所有路径都应该使用 api 密钥(除非被单个路径覆盖),实际发生的是上述警告,并且在导入时不需要 api 密钥。
| 归档时间: |
|
| 查看次数: |
733 次 |
| 最近记录: |