설명
OpenAPI 3.0의 components.securitySchemes에 Basic 인증을 정의해도 모든 작업에서 자동으로 사용되지는 않습니다. 이 정의를 참조하는 security 설정이 사용 대상을 지정합니다. type: http는 HTTP 인증 방식 분류이며, HTTPS 접속 여부는 서버 주소와 실제 연결 설정으로 결정됩니다.
잠재적 영향
Basic 자격 증명을 암호화되지 않은 연결로 보내면 사용자 이름과 비밀번호가 노출될 수 있습니다. 유출된 비밀번호의 재사용 위험도 있습니다.
해결 방법
Basic 인증을 사용하는 접속에 HTTPS와 인증서 검증을 적용하세요. 사용자 권한 위임이 필요하면 PKCE를 적용한 OAuth2 인가 코드 흐름을 검토하고, 실제 인증 서버와 클라이언트, 전역·작업별 security를 함께 구성하세요.
예시
변경 전은 HTTP 서버 주소와 Basic 인증 정의를 보여 주지만 이를 적용하는 security는 없습니다. 변경 후는 HTTPS 주소와 OAuth2 정의를 지정하고 전역 인증 요구사항도 추가합니다.
변경 전
json
{
"openapi": "3.0.0",
"servers": [
{
"url": "http://kicsapi.server.com/"
}
],
"components": {
"securitySchemes": {
"regularSecurity": {
"type": "http",
"scheme": "basic"
}
}
}
}
변경 후
json
{
"openapi": "3.0.0",
"servers": [
{
"url": "https://kicsapi.server.com/"
}
],
"components": {
"securitySchemes": {
"OAuth2": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://kicsapi.com/oauth/authorize",
"tokenUrl": "https://kicsapi.com/oauth/token",
"scopes": {
"write": "modify objects",
"read": "read objects"
}
}
}
}
}
},
"security": [
{
"OAuth2": [
"write",
"read"
]
}
]
}