설명
최상위 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"
}
}
}
}