피드로 돌아가기
Dev.toSecurity
원문 읽기
Dogfooding 기반의 SAML/SCIM 통합을 통한 인증 설계 결함 제거
We log into our own admin console with our own SAML. Here's what it caught.
AI 요약
Context
관리자 콘솔의 별도 인증 테이블을 제거하고 자사 SAML 및 SCIM 기반 SSO 체계로 전면 통합한 아키텍처 설계. 이를 통해 개발자가 직접 제품의 제약 사항을 경험하며 잠재적 런타임 오류와 권한 부여 로직의 허점을 식별하는 환경 구축.
Technical Solution
- .NET Trimmer의 Reflection 기반 CryptoConfig 분석 실패로 인한 SignedXml 런타임 Null Reference 해결을 위해 Auth Server의 Trimming 비활성화 결정
- SCIM 기반 Group-to-Role 매핑을 Token 발행 시점에 실시간 Resolve 하여 계정 생성 시 복제 방식의 데이터 불일치 문제 해결
- 인증(Authentication)과 인가(Authorization) 시스템 간의 전파 지연으로 인한 '유효하지만 권한 없는' 상태를 방지하는 Provisioning 순서 최적화
- 권한 거부 응답 시 의존성 누락으로 인한 500 Internal Server Error를 403 Forbidden으로 정정하여 예외 처리 경로의 안정성 확보
- Platform Signing Key와 Tenant Key를 물리적으로 분리하고 플랫폼 전용 Store를 독립 운영하는 3중 잠금 구조를 통한 Tenant 권한 상승 원천 차단
실천 포인트
- Reflection을 사용하는 암호화 라이브러리 적용 시 빌드 최적화 도구(Trimmer 등)의 코드 삭제 여부 검증 - SSO 도입 시 Token 발행 시점의 실시간 권한 확인 로직을 통한 데이터 동기화 지연 문제 방지 - 권한 거부(Forbidden) 응답 경로가 서버 에러(500)로 전이되지 않도록 최소 의존성 기반의 응답 핸들러 설계 - 멀티테넌시 환경에서 플랫폼 관리자 권한 보호를 위해 발급자(Issuer)와 서명 키를 테넌트와 완전히 분리