보안 · 심화
OpenID Connect는 OAuth 2.0 위에 아이덴티티 레이어를 추가하여 사용자 인증을 제공합니다. 표준 스코프(profile, email 등) 외에, 특정 비즈니스 요구사항을 만족시키기 위해 커스텀 스코프(Custom Scope)와 클레임(Custom Claim)을 정의하여 사용할 수 있습니다. 커스텀 스코프와 클레임을 설계하고 구현할 때 고려해야 할 보안 및 상호 운용성(Interoperability) 측면의 주요 사항들을 설명하고, 이를 통해 얻을 수 있는 이점과 발생할 수 있는 문제점을 제시해 주십시오.
힌트 · 커스텀 클레임은 ID 토큰에 추가 정보를 담아 전달하지만, 너무 많은 정보를 담으면 토큰 크기가 커지고 보안 리스크가 증가할 수 있습니다. 상호 운용성을 위해 표준 스펙을 준수하고, 클레임 충돌을 피해야 합니다.
최소 권한 원칙클레임 정보 보호토큰 유효성 검증메타데이터 공개상호 운용성 테스트
모범답안
OpenID Connect에서 커스텀 스코프와 클레임을 설계할 때 보안과 상호 운용성을 고려해야 합니다.
보안 측면에서는 최소 권한 원칙을 지켜 필요한 정보만 요청하고, 클레임에 민감한 정보가 담기지 않도록 주의해야 합니다. 토큰 크기가 커지지 않도록 클레임 크기를 제한하고, 유효성 검증을 철저히 해야 합니다.
상호 운용성을 위해서는 표준 스펙을 준수하고, 이미 정의된 클레임과 충돌하지 않도록 네이밍 규칙을 정해야 합니다. OIDC Provider의 메타데이터를 통해 커스텀 스코프와 클레임을 공개하고, 다양한 클라이언트와의 상호 운용성 테스트를 수행해야 합니다.
이러한 설계를 통해 비즈니스 요구사항을 충족하는 동시에 보안을 강화하고, 다양한 환경에서 원활하게 동작하는 시스템을 구축할 수 있습니다. 하지만 커스텀 스코프와 클레임이 많아질수록 복잡도가 증가하고, 관리가 어려워질 수 있다는 점을 고려해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 인증 / 인가 (JWT · OAuth) 면접 질문
- OAuth 2.0에서 리프레시 토큰(Refresh Token)은 액세스 토큰을 재발급하는 데 사용되며, 장기간 유효성을 가집니다. 이때 리프레시 토큰 재사용 공격(Refresh Token Replay Attack)을 방지하기 위해 롤링(Rotation) 전략이 권장됩니다. 리프레시 토큰 롤링의 정확한 동작 방식과 이점이 무엇인지 설명하고, 롤링 전략을 구현할 때 발생할 수 있는 잠재적인 문제점(예: 동시 요청 처리, 클라이언트 상태 관리)과 이에 대한 해결 방안을 제시해 주십시오.
- 마이크로서비스 아키텍처 환경에서 OAuth 2.0 또는 OpenID Connect 기반의 인증/인가 시스템을 설계할 때, API Gateway의 역할과 토큰 전달(Token Propagation) 전략에 대해 설명해 주십시오. 특히, 클라이언트로부터 받은 액세스 토큰을 백엔드 서비스들이 안전하고 효율적으로 검증하고 활용할 수 있도록 하는 방법에 대한 여러 접근 방식(예: 토큰 변환, 토큰 전달, 인가 정보 캐싱)을 비교하고, 각 방식의 장단점 및 적절한 사용 시나리오를 제시해 주십시오.
- OAuth 2.0 또는 OpenID Connect 인증 흐름에서 발생할 수 있는 CSRF(Cross-Site Request Forgery), XSS(Cross-Site Scripting), Open Redirect와 같은 일반적인 웹 취약점들이 인증 과정에 어떻게 영향을 미칠 수 있는지 구체적인 공격 시나리오를 들어 설명해 주십시오. 또한, 각 취약점에 대한 효과적인 방어 메커니즘(예: `state` 파라미터, `redirect_uri` 유효성 검사, CSP, SameSite Cookie)을 제시하고, 이들을 인증 시스템 설계에 어떻게 반영할 것인지 설명해 주십시오.
- 대규모 엔터프라이즈 환경에서 여러 서비스와 애플리케이션 간에 통합된 사용자 인증 및 인가(Federated Identity Management)를 구현하기 위해 OpenID Connect를 활용하는 방안을 설명해 주십시오. 특히, 여러 Identity Provider(IdP)를 연동해야 하는 시나리오(예: 소셜 로그인, 기업 SSO)에서 OpenID Connect 브로커링(Brokering) 또는 프록싱(Proxying) 패턴의 필요성과 동작 원리를 설명하고, 이 패턴을 도입할 때의 장단점과 주요 설계 고려사항을 제시해 주십시오.