OpenAPI 2.0의 OAuth2 암시적 흐름

OAuth2 암시적 흐름은 인가 응답으로 액세스 토큰을 직접 전달합니다.

설명

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": {}
    }
  }
}

참조