SAML SSO 작동 원리: 단계별 가이드
카테고리
인프라/DevOps/보안
서브카테고리
보안
대상자
- IT 보안 담당자, 개발자, 기업 인프라 관리자
- 중급~고급 수준의 보안 프로토콜 이해와 SSO 구현 경험을 가진 대상자
핵심 요약
- SAML (Security Assertion Markup Language)은 XML 기반의 인증 및 권한 부여 데이터 교환 표준로, IdP(아이덴티티 제공자)와 SP(서비스 제공자) 간의 신뢰 기반 인증을 구현
- SAML Assertion은 디지털 서명된 XML 문서로, 사용자의 인증 상태, 속성, 권한 결정을 포함하며 SP가 사용자 신원을 검증하는 핵심 요소
- SP-initiated flow는 사용자가 SP 앱으로부터 로그인을 시작하는 방식으로, IdP에서 SAML Request 생성 → SAML Response 전달 → SP에서 서명 검증 과정을 거침
섹션별 세부 요약
1. SAML SSO의 목적과 개념
- SSO(Single Sign-On)은 사용자가 단일 인증凭证으로 다중 애플리케이션에 접근하는 방식
- SAML은 OASIS에서 정의한 XML 기반 표준으로, 인증 정보를 안전하게 교환
- SAML Assertion은 디지털 서명되어 속도 및 신뢰성을 보장하며, IdP에서 생성되어 SP로 전달
2. SAML SSO의 주요 구성 요소
- IdP (Identity Provider): 사용자 인증을 담당하며, SAML Assertion 생성
- SP (Service Provider): 사용자 접근을 요청하며, SAML Assertion 검증
- SAML Assertion: 사용자 인증 상태, 속성, 권한 결정을 포함하는 XML 문서
3. SAML Assertion의 구성 요소
- Authentication Statement: 사용자 인증 시간 및 방식 (예: "9:00 AM에 패스워드로 로그인")
- Attribute Statement: 사용자 이메일, 그룹 멤버십 등 속성 정보 제공
- Authorization Decision Statement: 특정 리소스에 대한 접근 허용/거부 결정 (세부 권한 제어 용도)
4. SP-initiated SAML SSO 흐름
- Step 1: 사용자가 SP 앱 URL 접근 → SP가 SAML Request 생성 (XML 메시지)
- Step 2: SP가 IdP의 로그인 페이지로 리디렉션 (SAML Request 포함)
- Step 3: IdP에서 사용자 인증 → SAML Response 생성 및 ACS URL로 전달
- Step 4: SP가 SAML Assertion 검증 (서명, 발급자 확인, 시간 유효성 확인)
- Step 5: 검증 성공 시 사용자 세션 생성 및 앱 접근 허용
결론
- SAML SSO는 기업 인프라에서 보안 강화와 사용자 경험 개선에 효과적
- SP-initiated flow는 구현이 용이하며, IdP와 SP 간의 디지털 서명 기반 신뢰 관계가 핵심
- SSOJet과 같은 SaaS 기반 플랫폼을 활용하면 SAML SSO 구현의 기술적 복잡성을 줄일 수 있음