보안 · 중급
OpenID Connect(OIDC)는 OAuth 2.0 위에 구축된 프로토콜입니다. OAuth 2.0과 OIDC의 관계를 설명하고, OIDC가 OAuth 2.0에 추가적으로 제공하는 핵심 기능은 무엇인가요?
힌트 · OAuth 2.0은 인가(Authorization) 프레임워크이고, OIDC는 그 위에 사용자 '인증(Authentication)' 및 신원 확인 기능을 추가하여 구축되었습니다.
인증인가ID 토큰사용자 정보 엔드포인트OAuth 2.0 확장
모범답안
OAuth 2.0과 OIDC는 밀접한 관련이 있습니다. OAuth 2.0은 기본적으로 '인가'를 위한 프레임워크입니다. 즉, 사용자가 특정 애플리케이션에게 자신의 리소스에 대한 접근 권한을 부여하는 과정을 표준화합니다. 예를 들어, "A 앱이 내 구글 드라이브의 파일에 접근하도록 허용"하는 것이죠.
반면, OIDC는 OAuth 2.0 위에 구축되어 '인증' 기능을 추가합니다. OIDC는 사용자가 누구인지 확인하고, 그 정보를 안전하게 전달하는 방법을 제공합니다. OAuth 2.0만으로는 누가 접근 권한을 부여했는지 알 수 없지만, OIDC는 ID 토큰이라는 표준화된 포맷을 통해 사용자 정보를 제공합니다.
OIDC가 OAuth 2.0에 추가적으로 제공하는 핵심 기능은 다음과 같습니다. 첫째, ID 토큰을 통한 사용자 인증. 둘째, 사용자 정보 엔드포인트를 통해 사용자 프로필 정보에 접근하는 표준화된 방법 제공. 셋째, 세션 관리 및 로그아웃 기능 지원 등이 있습니다. 즉, OIDC는 OAuth 2.0을 확장하여 인증과 인가를 모두 처리할 수 있도록 해줍니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 인증 / 인가 (JWT · OAuth) 면접 질문
- OAuth 2.0의 'Authorization Code Grant'와 'Client Credentials Grant'는 각각 어떤 상황에 적합하며, 두 Grant Type의 주요 차이점은 무엇인가요?
- JWT(JSON Web Token)의 구조(Header, Payload, Signature)에서 Signature 부분의 역할은 무엇이며, Signature를 통해 JWT의 어떤 보안 속성을 보장할 수 있는지 설명해 주세요.
- Access Token과 Refresh Token을 분리하여 사용하는 것이 일반적인데, 이와 같이 토큰을 분리하는 주된 이유와 각각의 보안적 이점을 설명해 주세요.
- JWT 기반 인증 시스템에서 Access Token이 만료되었을 때, 클라이언트와 서버는 각각 어떻게 처리해야 하는지 구체적인 시나리오를 들어 설명해 주세요.
- OAuth 2.0에서 PKCE(Proof Key for Code Exchange) 확장이 도입된 배경과 이 확장 기능이 Public Client(예: 모바일 앱, SPA) 환경에서 어떤 보안 문제를 해결하는지 설명해 주세요.
- Stateless한 JWT의 특성에도 불구하고, 서버 측에서 특정 JWT를 강제로 무효화(Revocation)해야 하는 상황이 발생할 수 있습니다. 이러한 상황에서 JWT를 무효화할 수 있는 전략들을 설명해 주세요.