프로그래밍/Spring Security
SSO란?
dandev
2025. 5. 22. 23:00
728x90
반응형
(Single Sign-On)란
한 번의 로그인으로 여러 시스템 또는 서비스에 접근할 수 있도록 해주는 인증 방식이다.
사용자가 처음 한 번 로그인하면,
이후 별도의 로그인 없이 연동된 다른 서비스들도 자유롭게 이용할 수 있다.
예 : Google 계정에 로그인하면 Gmail, YouTube, Google Drive 등 다양한 Google 서비스에 다시 로그인할 필요 없이 바로 접근 가능
🔁 흐름 및 동작 방식
1. 사용자가 애플리케이션(A)에 접근 → 로그인 필요
2. 사용자가 SSO 서버(인증 서버)에 리디렉션됨
3. 사용자 인증 (아이디/비밀번호 입력)
4. SSO 서버가 사용자에게 토큰 또는 세션을 발급
5. 사용자 브라우저가 이 토큰으로 A에 접근 허용
6. 이후 사용자가 애플리케이션 B에 접근하더라도, 이미 인증된 토큰으로 로그인 없이 사용 가능
구성 요소
구성 요소 | 설명 |
사용자(Client) | 인증을 요청하는 사용자 |
서비스 제공자(SP, Service Provider) | 실제 서비스를 제공하는 애플리케이션 |
인증 서버(IdP, Identity Provider) | 사용자 인증을 담당하고, 토큰 또는 세션을 발급하는 서버 |
토큰/쿠키 | 인증 상태를 저장하고 전달하는 정보 |
표준
프로토콜 | 설명 |
SAML (Security Assertion Markup Language) | XML 기반, 기업 내부 시스템 간 SSO에서 많이 사용 |
OAuth 2.0 + OpenID Connect | RESTful API 기반, 모바일/웹 환경에 적합 구글, 페이스북, 네이버 로그인 등이 이 구조 |
Kerberos | 네트워크 기반 인증 프로토콜 윈도우 AD (Active Directory) 환경에서 주로 사용 |
장점
- 사용자 편의성 ↑ (로그인 한 번이면 끝)
- 보안성 ↑ (중앙집중형 인증, 비밀번호 노출 가능성 감소)
- 관리 효율 ↑ (계정 정책 통합 관리 가능)
- 사용자 이탈률 ↓ (로그인 장벽 감소)
단점
- SSO 서버 장애 시 전체 서비스 불능
- 보안 사고 발생 시, 모든 서비스가 위험
- 도입이 복잡하고 구현 난이도 높음
SSO vs OAuth vs OpenID Connect
구분 | 설명 |
SSO | 개념 (한 번 로그인하면 여러 시스템 접근) |
OAuth 2.0 | 인증 "권한" 부여 프로토콜 (리소스 접근을 제어) |
OpenID Connect | OAuth2 위에 얹은 인증 프로토콜 사용자 정보(ID Token)를 함께 제공하여 실제 SSO 구현에 적합 |
728x90
반응형