使用API​​密钥& Swagger安全计划的秘密

时间:2015-04-23 08:04:28

标签: swagger

Swagger支持api key的安全性,但这似乎仅限于一个参数。

有没有办法定义一组预期作为请求参数的参数(密钥和秘密)?

或者只是跳过安全方案的唯一方法,只是将这些参数添加到每个请求中?

1 个答案:

答案 0 :(得分:19)

是的,OpenAPI(Swagger)2.0和3.0允许您定义多个安全定义,并将操作标记为需要多个证券,例如一对API密钥。

在以下示例中,我定义了两个API密钥KeySecretKey,这两个API密钥都应出现在每个请求的标头中,以便进行身份验证。

swagger: '2.0'
info:
  version: 0.0.0
  title: Simple API
securityDefinitions:
  key:
    type: apiKey
    in: header
    name: Key
  secret_key:
    type: apiKey
    in: header
    name: SecretKey
paths:
  /:
    get:
      # Both 'Key' and 'SecretKey' must be used together
      security:
        - key: []
          secret_key: []
      responses:
        200:
          description: OK

请注意,这与

不同
      security:
        - key: []
        - secret_key: []  # <-- Note the leading dash here

表示端点需要KeySecretKey,但不能同时使用。{/ p>