비어 있는 전역 security 배열

전역 security가 빈 배열이면 기본 인증 요구사항이 없습니다.

설명

최상위 security: []는 API의 기본 인증 요구사항이 없다는 뜻입니다. 개별 작업에서 이를 재정의할 수 있습니다. 의도적인 공개 API에는 유효한 설정이지만, 공통 인증이 필요한 API에는 요구사항을 지정해야 합니다.

잠재적 영향

보호해야 할 작업이 이 기본값을 따르면 명세상 인증 없이 호출할 수 있는 것으로 전달됩니다. 명세의 선언과 실제 서버의 인증 정책은 일치해야 합니다.

해결 방법

공통 인증이 필요하면 전역 security에 정의된 인증 방식을 참조하세요. 공개할 작업만 별도로 예외 처리하세요. security: []와 security: [{exampleSecurity: []}]는 다릅니다. 후자는 해당 인증 방식을 요구하며, API 키 방식의 빈 범위 배열은 올바른 형식입니다.

예시

예시는 인증 요구사항이 없는 기본값을 exampleSecurity API 키 인증으로 바꿉니다.

변경 전

json
{
  "openapi": "3.0.0",
  "paths": {
    "/": {
      "get": {
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  },
  "security": [],
  "info": {
    "title": "Simple API overview",
    "version": "1.0.0"
  },
  "components": {
    "securitySchemes": {
      "exampleSecurity": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      }
    }
  }
}

변경 후

json
{
  "openapi": "3.0.0",
  "paths": {
    "/": {
      "get": {
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  },
  "security": [
    {
      "exampleSecurity": []
    }
  ],
  "info": {
    "title": "Simple API overview",
    "version": "1.0.0"
  },
  "components": {
    "securitySchemes": {
      "exampleSecurity": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      }
    }
  }
}

참조