설명
OpenAPI 2.0의 securityDefinitions가 없거나 비어 있으면 문서에 인증 방식이 정의되어 있지 않습니다. 인증을 사용하는 API라면 실제 방식과 필요한 자격 증명을 명시해야 합니다. 의도적으로 공개한 API에는 인증 정의가 필요하지 않을 수 있습니다.
잠재적 영향
인증 정의가 빠지면 클라이언트 생성 도구와 개발자가 필요한 자격 증명을 알기 어렵습니다. 명세의 누락만으로 서버에 인증이 없다고 판단할 수는 없습니다.
해결 방법
securityDefinitions에 실제 인증 방식을 정의하고 전역 또는 개별 작업의 security에서 참조하세요. 정의를 추가하는 것만으로 인증 요구사항이 적용되지는 않습니다. 서버에서도 해당 요구사항을 적용해야 합니다.
예시
다음 예시는 ApiKeyAuth를 정의하고 API 전체에서 요구하도록 명세를 보완합니다.
변경 전
json
{
"swagger": "2.0",
"info": {
"title": "Simple API Overview",
"version": "1.0.0"
},
"paths": {
"/": {
"get": {
"summary": "List API versions",
"responses": {
"200": {
"description": "ok"
}
}
}
}
},
"securityDefinitions": {}
}
변경 후
json
{
"swagger": "2.0",
"info": {
"title": "Simple API Overview",
"version": "1.0.0"
},
"paths": {
"/": {
"get": {
"summary": "List API versions",
"responses": {
"200": {
"description": "ok"
}
}
}
}
},
"securityDefinitions": {
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key"
}
},
"security": [
{
"ApiKeyAuth": []
}
]
}