study/보안

SSO란?

dddzr 2025. 11. 29. 17:20

 

🔍 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