설명
개별 작업과 최상위 문서 모두에 security가 없으면 그 작업에는 명세상 인증 요구사항이 없습니다. 의도적으로 공개한 작업에는 적절할 수 있지만, 인증이 필요한 작업이라면 누락을 수정해야 합니다.
잠재적 영향
명세를 사용하는 개발자나 클라이언트 생성 도구가 인증 없이 호출하도록 구현할 수 있습니다. 서버가 실제로 인증을 적용하는지는 별도로 확인해야 합니다.
해결 방법
실제 인증 방식을 정의하고 전역 또는 해당 작업의 security에서 참조하세요. 공개 작업과 보호할 작업을 구분하고 명세와 서버의 정책을 일치시키세요.
예시
예시는 exampleSecurity라는 API 키 인증 방식을 정의하고 전역 security에 연결해 해당 작업에 적용합니다.
변경 전
json
{
"openapi": "3.0.0",
"info": {
"title": "Simple API overview",
"version": "1.0.0"
},
"paths": {
"/": {
"get": {
"responses": {
"200": {
"description": "ok"
}
}
}
}
},
"components": {
"securitySchemes": {
"exampleSecurity": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key"
}
}
}
}
변경 후
json
{
"openapi": "3.0.0",
"info": {
"title": "Simple API overview",
"version": "1.0.0"
},
"paths": {
"/": {
"get": {
"responses": {
"200": {
"description": "ok"
}
}
}
}
},
"security": [
{
"exampleSecurity": []
}
],
"components": {
"securitySchemes": {
"exampleSecurity": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key"
}
}
}
}