OAuth 2.0의 흐름과 주요 Grant Type에 대해 설명해주세요.
힌트 · Authorization Code, Implicit, Client Credentials, PKCE 흐름을 설명해보세요.
모범답안
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 코칭합니다.