🔍 1. SSO란?
SSO (Single Sign-On, 싱글 사인온) 은 한 번 로그인하면 여러 서비스/시스템을 다시 로그인 없이 이용할 수 있게 해주는 인증 방식
📌2. SSO 인증 프로토콜
SSO를 구현하기 위한 프로토콜/인증 방식
| 방식 | 역할 | 특징 | 토큰/응답 |
| SAML 2.0 (Security Assertion Markup Language) | 인증 | XML 기반, 주로 기업용 웹 SSO | SAML Assertion(XML) |
| OAuth 2.0 (Open Authorization) | 권한 (인증x, API 접근 권한 발급) | JSON/JWT 기반, RESTful API 친화적 | Access Token |
| OIDC (OpenID Connect) | 인증 + 권한 | OAuth 2.0 기반, API 친화적 | ID Token (JWT), Access Token |
📌3. SSO 용어 정리
| 용어 | 의미 | 예시 |
| SSO | 한 번 로그인으로 여러 SP 접근 가능 | 회사 포털 로그인 후 다양한 앱 접근 |
| IdP (Identity Provider) | 사용자 인증 제공자, 인증 정보를 SP에 전달 | Microsoft Entra ID, Okta, Google |
| SP (Service Provider) | 서비스 제공자, IdP 인증 정보 검증 후 서비스 제공 | Teams, Jira, Salesforce |
📌4. SSO 흐름
✅ 4-1. OAuth 2.0 / OIDC
1. 사용자 SP 접근
│ 연동 링크 클릭
▼ 브라우저 리디렉션
(GET https://idp.example.com/authorize?
response_type=code
&client_id=<SP_CLIENT_ID>
&redirect_uri=<SP_REDIRECT_URI>
&scope=openid profile email
&state=<랜덤값>
)
2. IdP
├─ 로그인 필요 시 로그인 페이지 제공 (IdP가 이미 브라우저에 로그인 되어 있으면 로그인 단계 생략)
└─ Authorization Code 발급
▼ 브라우저 리디렉션
(GET <SP_REDIRECT_URI>?code=<AUTH_CODE>&state=<state>)
3. SP:
├─ Code → Access Token / ID Token 교환 (POST https://idp.example.com/token)
├─ Token 검증 + 사용자 정보 획득
└─ SP 세션 생성 → 로그인 완료
✅ 4-2. SAML 기준
1. 사용자 SP 접근
│ 연동 링크 클릭 → IdP AuthnRequest 전송
▼ 브라우저 리디렉션
(GET https://idp.example.com/sso?SAMLRequest=&RelayState=<랜덤값>
)
2. IdP:
├─ 로그인 필요 시 로그인 페이지 제공 (IdP가 이미 브라우저에 로그인 되어 있으면 로그인 단계 생략)
└─ 로그인 완료 → SAML Assertion(XML) 생성
▼ 브라우저 리디렉션 → SP ACS URL (Assertion 전달)
(POST https://sp.example.com/acs
Content-Type: application/x-www-form-urlencoded
SAMLResponse=<Base64(SAML Assertion XML)>
RelayState=<RelayState>
)
▼
3. SP
├─ Assertion 검증
└─ 세션 생성 → 로그인 완료
'study > 보안' 카테고리의 다른 글
| SSL이란? (Secure Sockets Layer) (0) | 2025.03.24 |
|---|---|
| JWT란? (JSON Web Token) (0) | 2025.02.16 |
| 저장소 비교 (0) | 2024.12.01 |
| 방화벽/IDS/IPS (0) | 2024.03.12 |
| CNAPP (CWPP/SCPM/CIEM) (0) | 2024.03.12 |