패스잇
보안 · 중급

OAuth 2.0의 흐름과 주요 Grant Type에 대해 설명해주세요.

힌트 · Authorization Code, Implicit, Client Credentials, PKCE 흐름을 설명해보세요.

Authorization CodeImplicit GrantResource Owner Password CredentialsClient CredentialsRefresh Token

모범답안

OAuth 2.0은 특정 서비스(Resource Server)의 자원에 접근 권한을 위임받기 위한 표준 프로토콜입니다. 핵심은 사용자의 ID/PW를 직접 전달하지 않고, "Access Token"이라는 임시 키를 발급받아 사용하는 것입니다.

OAuth 2.0에는 여러 흐름(Grant Type)이 있는데, 가장 많이 사용되는 것은 다음과 같습니다.

  • Authorization Code Grant: 웹 서버 기반 앱에 적합하며, Authorization Server로부터 Authorization Code를 받아 Access Token을 요청하는 방식입니다. 보안성이 높습니다.

  • Implicit Grant: 클라이언트 사이드 앱(JavaScript 앱)에 적합하며, Authorization Server로부터 Access Token을 직접 받는 방식입니다. 보안에 취약하여 사용이 권장되지 않습니다.

  • Client Credentials Grant: 백엔드 서비스 간 통신에 사용되며, Client ID와 Secret을 사용하여 Access Token을 요청하는 방식입니다.

  • Resource Owner Password Credentials Grant: 사용자의 ID/PW를 직접 사용하여 Access Token을 요청하는 방식입니다. 신뢰할 수 있는 환경에서만 사용해야 합니다.

  • PKCE (Proof Key for Code Exchange): Authorization Code Grant의 보안을 강화하기 위해 사용되며, 특히 모바일 앱과 같은 공개 클라이언트 환경에서 CSRF 및 Authorization Code Interception 공격을 방지합니다.

Access Token은 만료 기간이 있으며, 만료된 Access Token을 갱신하기 위해 Refresh Token이 사용됩니다.

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

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

함께 보는 웹 보안 면접 질문

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