SSO의 마법: 한 번 로그인으로 모든 서비스 접속
회사에서 업무 시작할 때 한 번 로그인만 했을 뿐인데…
- 이메일도 열리고
- 메신저도 되고
- 사내 포털, 클라우드 문서, ERP까지 자동 로그인?
이 놀라운 경험은 Single Sign-On (SSO) 덕분입니다.
그런데 이 마법 같은 일이 어떻게 가능할까요?
지난 글 복습: 로그인은 이렇게 이뤄졌죠
- 사용자는 서비스 제공자(SP)에 접속
- SP는 사용자를 IdP로 리디렉션
- 사용자는 IdP에서 로그인 (ID/PW)
- IdP는 SAML Assertion을 생성
- 브라우저가 SP에 Assertion 전달
- SP는 Assertion을 검증하고 로그인 세션 생성
그럼 이제 이 질문이 생깁니다.
“왜 다른 SP에 접속해도 또 로그인하지 않아도 되지?”
비밀 1: IdP 세션 쿠키
핵심은 바로 IdP가 브라우저에 남긴 세션 쿠키입니다.
- 사용자가 IdP에서 로그인에 성공하면,
- IdP는 브라우저에 세션 쿠키를 저장합니다.
(예: Set-Cookie: session_id=xyz123;)
이 쿠키는 이후에도 IdP에 접근할 때 자동으로 함께 전송됩니다.
즉, 브라우저는 “이미 로그인했어요”라고 스스로 인증하는 셈이죠.
자동 로그인 흐름 (다른 SP에 접근할 때)
- 사용자가 새로운 SP (예: drive.company.com)에 접속
- SP는 IdP로 리디렉션
- 브라우저는 IdP에 접속하며 세션 쿠키 자동 전송
- IdP는 “이미 인증된 사용자”임을 확인
- 새로운 SAML Assertion을 생성해 SP로 전달
- SP는 로그인 완료
사용자 입장에서는 “로그인 창도 안 나왔는데 자동 로그인된 것”처럼 보입니다.
세션은 어디에 저장될까?
| 로그인 상태 | IdP (서버 세션 or DB) | 사용자가 로그인했는지 |
| 인증된 사용자 정보 | SP (서버 세션, JWT 등) | SP 측에서 로그인 유지용 |
| 쿠키 | 브라우저 | 세션 ID를 저장하고 서버에 보내주는 매개체 |
이 구조는 브라우저 중심으로 흐름이 유지되기 때문에, 사용자 경험이 매끄럽습니다.
로그아웃은 어떻게 작동할까? (Single Logout)
이쯤 되면 또 이런 의문이 생기죠.
“한 번 로그인으로 다 들어가면… 로그아웃도 다 같이 돼야 하지 않나?”
맞습니다. 이를 SLO (Single Logout) 이라고 합니다.
- 사용자가 하나의 SP에서 “로그아웃”을 누르면,
- 그 SP는 IdP에 “로그아웃 요청”을 보냅니다.
- IdP는 연결된 다른 SP들에게도 로그아웃 요청을 브라우저를 통해 전파합니다.
하지만 현실적으로 모든 SP가 로그아웃 처리를 100% 잘 지원하는 건 아닙니다.
그래서 완전한 SLO는 기술적으로 어려운 과제입니다.
보안적으로 중요한 포인트
- 쿠키는 보안 설정 필수
- Secure, HttpOnly, SameSite 설정이 권장됩니다.
- 브라우저 닫는다고 로그아웃되지 않을 수도 있음
- 세션 타임아웃을 설정해야 함
- 다른 사람과 PC 공유 시, SSO는 위험 요소가 될 수 있음
- 자동 로그인 상태에서 다른 서비스에 무단 접속 가능성
이를 위해 세션 타임아웃, 자동 로그아웃, MFA 적용, 기기 인증 등의 보완 기능이 함께 적용되곤 합니다.
요약: SSO의 자동 로그인은 이렇게 된다!
사용자는 그저 "다 되는 느낌"을 받지만, 그 뒤에는 세션 관리 + 브라우저 쿠키 + SAML 프로토콜이 유기적으로 움직이고 있죠.
다음 예고: 실전 사례 (Azure AD, Okta, OneLogin 등)
다음 7편에서는 실제 회사에서 많이 쓰는 SSO 시스템인 Azure Active Directory, Okta, OneLogin 등을 중심으로 실제 로그인 흐름 사례를 보여드릴 예정입니다.
각 시스템의 리디렉션 URL, 인증 흐름, 조직 단위 설정 등도 간단히 소개합니다.
'호주 IT 취업' 카테고리의 다른 글
| [SSO 로그인 흐름 8편] 직접 들여다보자! DevTools로 SSO 흐름 추적하기 (0) | 2025.06.22 |
|---|---|
| [SSO 로그인 흐름 7편] Azure AD, Okta, OneLogin은 어떻게 다를까? – 실전 사례로 보는 SSO 흐름 (4) | 2025.06.21 |
| 호주 이직 전 반드시 확인: PayCalculator로 실수령액 계산하는 법 (6) | 2025.06.19 |
| [SSO 로그인 흐름 5편] SAML Assertion, 그 안에 뭐가 들었을까? (1) | 2025.06.19 |
| [SSO 로그인 흐름 4편] "아이디 입력했어요!" 그 다음엔? – SAML 인증 흐름 따라가기 (1) | 2025.06.18 |