피드로 돌아가기
From Django Library to AWS Cognito: My Journey Building Enterprise SSO
Dev.toDev.to
Security

AWS Cognito 도입을 통한 Zero-code 기반 Universal SSO 아키텍처 구축

From Django Library to AWS Cognito: My Journey Building Enterprise SSO

Soldatov Serhii2026년 4월 12일6intermediate

Context

Django 기반의 단순 SSO 라이브러리 사용 시 단일 Provider 설정 제약으로 인해 Multi-tenant 환경의 동적 요구사항 대응에 한계 노출. 신규 Provider 추가 시마다 서버 코드 수정과 테스트 사이클이 반복되는 구조적 병목 발생.

Technical Solution

  • Identity Broker 패턴 도입을 통한 App과 IdP 간의 결합도 제거 및 Cognito 중심의 인터페이스 단일화
  • Email Domain 기반의 Dynamic Config Discovery API 설계를 통한 런타임 Provider 결정 구조 구현
  • OIDC 표준 프로토콜 기반의 Token Normalization을 통해 IdP 종류와 무관한 일관된 OAuth2 Flow 확보
  • AWS API 연동 기반의 Automated Provisioning 시스템 구축으로 관리 콘솔 조작 없는 Provider 설정 자동화
  • Webhook 기반의 Lifecycle Event 처리 로직 구현을 통한 실시간 User Deprovisioning 및 보안 요구사항 충족
  • django-encrypted-model-fields를 활용한 Client Secret 암호화 저장으로 보안 계층 강화

1. 임의의 OIDC Provider 지원이 필요한 경우 라이브러리 커스텀보다 Identity Broker 도입 검토

2. 엔터프라이즈 SSO 설계 시 User Deprovisioning을 위한 Webhook 인프라를 초기 설계에 포함

3. Multi-tenant 환경의 IdP 설정값은 반드시 DB 암호화 필드를 통해 관리

4. IdP별 특이사항을 App 로직에 넣지 말고 표준화된 Claims 매핑 레이어를 구축

원문 읽기