티스토리 뷰

프로그래밍/Spring Security

SSO란?

dandev 2025. 5. 22. 23:00
반응형

(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 구현에 적합

 

 

반응형