패스잇
보안 · 기초

OAuth 2.0의 Authorization Code Grant 플로우에서 인가 코드(authorization code)와 액세스 토큰을 분리해서 두 단계로 주고받는 이유는 무엇인가요?

힌트 · 브라우저(프론트 채널)와 서버(백 채널) 중 어디로 무엇이 전달되는지, 노출 위험 관점에서 접근하세요.

보안클라이언트서버토큰 탈취인가 코드

모범답안

OAuth 2.0의 Authorization Code Grant 플로우에서 인가 코드와 액세스 토큰을 분리하는 주된 이유는 보안 강화입니다.

인가 코드는 브라우저와 같은 프론트 채널을 통해 클라이언트 애플리케이션으로 전달됩니다. 이 과정에서 인가 코드가 노출되더라도, 이는 일회성으로 사용되며 제한된 권한만을 가지므로 즉각적인 큰 피해를 막을 수 있습니다.

반면, 액세스 토큰은 클라이언트 애플리케이션의 백엔드 서버와 인증 서버 간의 안전한 통신(백 채널)을 통해서만 교환됩니다. 액세스 토큰은 실제 리소스 접근 권한을 가지므로, 이를 직접 브라우저로 노출시키면 토큰 탈취 위험이 매우 커집니다. 인가 코드를 사용함으로써, 민감한 액세스 토큰은 안전한 백 채널을 통해서만 전달되도록 하여 토큰 탈취 위험을 최소화하는 것입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 웹 보안 면접 질문

← 웹 보안 면접 질문 전체 보기