설명
OpenAPI 2.0의 flow: implicit는 인가 응답에서 액세스 토큰을 직접 전달하는 OAuth2 흐름을 정의합니다. 토큰 유출과 주입 위험 때문에 새 구현에서는 PKCE를 사용하는 인가 코드 흐름이 권장됩니다.
잠재적 영향
리디렉션 과정에서 토큰이 노출되거나 공격자가 주입한 토큰을 클라이언트가 사용하면 의도하지 않은 접근이나 계정 연결이 발생할 수 있습니다.
해결 방법
인증 서버와 클라이언트를 인가 코드 흐름 및 PKCE로 전환하고 명세를 flow: accessCode로 갱신하세요. authorizationUrl과 tokenUrl에는 실제 제공자의 HTTPS 주소를 지정하세요. 명세 수정만으로 실제 흐름이 바뀌지는 않습니다.
예시
예시는 oauth2 정의를 인가 코드 흐름으로 바꿉니다. PKCE는 클라이언트와 인증 서버에서 설정해야 합니다.
변경 전
json
{
"securityDefinitions": {
"oauth2": {
"type": "oauth2",
"flow": "implicit",
"authorizationUrl": "https://api.example.com/oauth/authorize",
"scopes": {}
}
}
}
변경 후
json
{
"securityDefinitions": {
"oauth2": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "https://api.example.com/oauth/authorize",
"tokenUrl": "https://api.example.com/oauth/token",
"scopes": {}
}
}
}