当前位置: 首页 > 知识库问答 >
问题:

如何使用Swagger在API网关上全局设置API密钥安全

艾令秋
2023-03-14

我正在尝试将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扩展)。

一个迷你示例如下:

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密钥。

共有1个答案

申屠乐池
2023-03-14

在我写这个答案的时候,根据他们的留档,AWS API网关不支持在根级别设置安全性。

API网关不使用OpenAPI规范中定义的根级别安全性。因此,需要在操作级别定义安全性才能适当应用。

 类似资料:
  • 问题内容: 因此,我正在执行的第一个项目中使用Google Maps API。是的,我是新手,如果这是基础知识或显而易见的事情,我感到抱歉,但是我找不到明确的答案或方向。以下是我从Google找到的有关安全使用API​​密钥的文档。 安全使用API​​密钥的最佳做法 在应用程序中使用API​​密钥时,请注意确保其安全。公开暴露您的凭据可能会导致您的帐户遭到盗用,这可能会导致您的帐户发生意外费用。为

  • 所以我在我做的第一个项目上使用谷歌地图应用编程接口...所以是的,我是新来的,如果这是基本的或显而易见的,我很抱歉,但是我还没有找到一个明确的答案或方向。下面是我从谷歌找到的关于安全使用API密钥的留档。 安全使用API密钥的最佳实践 在应用程序中使用API密钥时,请注意确保它们的安全。公开披露您的凭据可能会导致您的帐户被泄露,这可能会导致您的帐户发生意外费用。要确保API密钥的安全,请遵循以下最

  • 我启用了Swagger open API 3.0,如下所示: 添加了以下依赖项 之后添加了下面的bean进行定制。 一切正常。我可以访问swagger-用户界面和api文档。 但是我有几个使用keycloak OAuth 2.0保护的api。当我试图访问这些安全的api时,我收到了未经授权的错误(这是意料之中的)。我也想从swagger open api 3.0中测试安全的api。 有人能帮我在s

  • Swagger支持api密钥的安全性,但这似乎仅限于单个参数。 有没有办法定义一组参数(key和secret)作为请求中的参数? 或者,唯一的方法就是跳过安全方案,只将这些参数添加到每个请求中?

  • Setting up the API Gateway(设置API网关) 简介 一般流程 案例 Web 应用(API 消费者) API Gateway (api 网关) LoopBack 应用 执行 demo 简介 该StrongLoop API网关实际也是LoopBack的应用程序, 你可以将 网关模块合并到任何 LoopBack API 服务实例的进程中,也可以单独运行 一个典型的API 网关部

  • 我得到异常“http://api.openweathermap.org/data/2.5/weather?q=sydney”。有人能帮忙怎么用吗。当我粘贴以下内容时,可以很好地使用web浏览器 我也试过下面的组合,但没有运气