대규모 엔터프라이즈 환경에서 여러 서비스와 애플리케이션 간에 통합된 사용자 인증 및 인가(Federated Identity Management)를 구현하기 위해 OpenID Connect를 활용하는 방안을 설명해 주십시오. 특히, 여러 Identity Provider(IdP)를 연동해야 하는 시나리오(예: 소셜 로그인, 기업 SSO)에서 OpenID Connect 브로커링(Brokering) 또는 프록싱(Proxying) 패턴의 필요성과 동작 원리를 설명하고, 이 패턴을 도입할 때의 장단점과 주요 설계 고려사항을 제시해 주십시오.
힌트 · OIDC 브로커링은 여러 IdP를 하나의 중앙 집중식 OIDC Provider를 통해 관리하여 클라이언트의 복잡성을 줄입니다. 보안 정책 일관성 유지, IdP 추가/삭제 용이성, 성능 최적화가 주요 고려사항입니다.
모범답안
네, OpenID Connect를 활용하여 대규모 엔터프라이즈 환경에서 통합된 사용자 인증 및 인가를 구현하는 방안에 대해 설명드리겠습니다.
OpenID Connect는 OAuth 2.0 위에 구축된 인증 프로토콜로, 다양한 서비스와 애플리케이션에 걸쳐 사용자 인증 정보를 안전하게 공유할 수 있도록 해줍니다. 여러 Identity Provider(IdP)를 연동해야 하는 경우, OIDC 브로커링 또는 프록싱 패턴이 유용합니다.
OIDC 브로커링은 클라이언트 애플리케이션이 직접 여러 IdP와 통신하는 대신, 중앙 집중식 OIDC Provider(브로커)를 통해 인증을 처리하도록 합니다. 클라이언트는 브로커와만 통신하면 되므로 복잡성이 줄어듭니다. 브로커는 각 IdP와의 신뢰 관계를 설정하고, 토큰 변환을 수행하여 클라이언트가 이해할 수 있는 형식으로 제공합니다.
장점으로는 보안 정책 일관성 유지, IdP 추가/삭제 용이성, 클라이언트 애플리케이션의 단순화 등이 있습니다. 단점으로는 브로커 자체의 복잡성 증가, 단일 실패 지점 발생 가능성, 성능 병목 현상 등이 있습니다.
주요 설계 고려사항으로는 브로커의 보안 강화, 성능 최적화, IdP와의 신뢰 관계 관리, 토큰 변환 로직 설계, 그리고 장애 발생 시 복구 전략 등이 있습니다. 또한, 브로커를 통해 사용자 정보를 통합 관리할 경우 개인정보보호 규정을 준수해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 인증 / 인가 (JWT · OAuth) 면접 질문
- 마이크로서비스 아키텍처 환경에서 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)을 제시하고, 이들을 인증 시스템 설계에 어떻게 반영할 것인지 설명해 주십시오.
- OpenID Connect는 OAuth 2.0 위에 아이덴티티 레이어를 추가하여 사용자 인증을 제공합니다. 표준 스코프(profile, email 등) 외에, 특정 비즈니스 요구사항을 만족시키기 위해 커스텀 스코프(Custom Scope)와 클레임(Custom Claim)을 정의하여 사용할 수 있습니다. 커스텀 스코프와 클레임을 설계하고 구현할 때 고려해야 할 보안 및 상호 운용성(Interoperability) 측면의 주요 사항들을 설명하고, 이를 통해 얻을 수 있는 이점과 발생할 수 있는 문제점을 제시해 주십시오.