패스잇
보안 · 중급

OAuth 2.0의 'Authorization Code Grant'와 'Client Credentials Grant'는 각각 어떤 상황에 적합하며, 두 Grant Type의 주요 차이점은 무엇인가요?

힌트 · 사용자 개입이 필요한지 여부와 클라이언트의 유형(Public/Confidential)에 따라 적합한 Grant Type이 달라집니다.

Authorization CodeClient Credentials사용자 동의Client Secret백엔드 시스템

모범답안

OAuth 2.0의 Authorization Code Grant와 Client Credentials Grant는 사용 목적과 방식에 뚜렷한 차이가 있습니다.

Authorization Code Grant는 사용자의 명시적인 동의가 필요한 경우에 적합합니다. 예를 들어, 사용자가 다른 서비스에 자신의 정보 접근 권한을 부여할 때 사용됩니다. 사용자는 인증 서버에 로그인하여 권한을 위임하고, 서비스는 Authorization Code를 받아 Access Token을 요청합니다. 이 과정에서 사용자의 동의가 핵심입니다.

반면, Client Credentials Grant는 사용자 동의 없이 애플리케이션 자체의 권한으로 접근해야 할 때 사용됩니다. 주로 백엔드 시스템 간의 통신이나, 스크립트가 API에 접근할 때 유용합니다. 이 방식은 Client ID와 Client Secret을 사용하여 인증하며, Confidential Client(Client Secret을 안전하게 보관할 수 있는 서버)에 적합합니다.

주요 차이점은 사용자 개입 여부와 클라이언트의 유형입니다. Authorization Code Grant는 사용자 동의가 필요하고 Public Client 또는 Confidential Client 모두 사용할 수 있지만, Client Credentials Grant는 사용자 동의가 필요 없고 Confidential Client만 사용할 수 있습니다.

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

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

함께 보는 인증 / 인가 (JWT · OAuth) 면접 질문

← 인증 / 인가 (JWT · OAuth) 면접 질문 전체 보기