설명
OpenAPI 3.0의 type: http, scheme: oauth는 레거시 OAuth 인증 방식을 설명합니다. 새 연동이나 인증 체계 전환 시 인증 서버와 클라이언트의 지원 상태를 검토해야 합니다. 이 선언만으로 실제 인증이 취약하다고 단정하거나 OAuth2로의 전환이 완료되었다고 볼 수는 없습니다.
잠재적 영향
- 지원되지 않는 인증 방식은 신규 클라이언트나 게이트웨이 연동과 유지보수를 어렵게 할 수 있습니다.
- 문서와 실제 인증 흐름이 다르면 클라이언트가 잘못된 방식으로 자격 증명을 전달하거나 연동에 실패할 수 있습니다.
해결 방법
지원되는 OAuth2 흐름을 선택하고 인증 서버, 클라이언트와 API의 구성을 함께 전환하세요. 인가 코드 흐름에는 PKCE 등 현재 보안 권고를 적용하고 HTTPS, 리디렉션 URI와 필요한 범위를 확인하세요. 실제 동작을 검증한 뒤 OpenAPI 보안 스키마와 security 요구사항에 반영하세요.
예시
다음은 보안 스키마 정의의 일부입니다. 엔드포인트와 범위는 실제 서비스 값으로 바꾸고, 각 작업에 적용할 security 요구사항을 별도로 지정하세요.
변경 전
json
{
"openapi": "3.0.0",
"components": {
"securitySchemes": {
"petstore_auth": {
"type": "http",
"scheme": "oauth"
}
}
}
}
변경 후
json
{
"openapi": "3.0.0",
"components": {
"securitySchemes": {
"petstore_auth": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://example.com/api/oauth/dialog",
"tokenUrl": "https://example.com/api/oauth/token",
"scopes": {
"read:pets": "read your pets"
}
}
}
}
}
}
}
변경 후 예제는 OAuth2 인가 코드 흐름을 문서화합니다. 이 정의만으로 PKCE나 서버 측 토큰 검증이 설정되는 것은 아닙니다.