security

IdP와 SP 쉽게 이해하기: SSO가 어떻게 동작하는가

회사 시스템이나 SaaS를 여러 개 쓰다 보면, 로그인을 계속 반복해야 해서 번거롭다는 느낌을 받을 때가 있습니다.

  • 사내 포털
  • 메일
  • 문서 협업 도구
  • 일정/근태 시스템

그래서 등장한 개념이 SSO(Single Sign-On) 입니다. 한 번 로그인하면 여러 서비스가 자동으로 로그인되는 구조입니다. 그 중심에 있는 개념이 바로 IdPSP 입니다.


IdP와 SP는 무엇인가?

IdP (Identity Provider)

이 사용자가 누구인지 증명해주는 주체입니다. 즉, 사용자의 신원을 확인하고 로그인 절차를 처리하는 역할을 담당합니다. IdP는 인증(Authentication)을 수행하고, 그 결과를 토큰(ID Token, Access Token 등) 형태로 발급합니다.

  • 회사의 사내 인증 서버 (사번 로그인 페이지)
  • Google 로그인, Apple 로그인, Kakao 로그인 등

SP (Service Provider)

Service Provider(SP) 는 사용자가 실제로 이용하는 응용 서비스(애플리케이션) 를 의미합니다. SP는 사용자의 로그인 자체를 처리하지 않고, 대신 IdP가 발급한 인증 결과(토큰) 를 신뢰합니다. 이를 통해 SP는 이 사용자가 인증된 사용자임을 확인할 수 있습니다.

  • Slack, Jira, Notion
  • 회사의 인사 시스템, 메일 시스템

회사 건물 출입을 예로 들어볼 수 있습니다.

역할현실 비유설명
IdP출입증 발급 데스크“직원 맞으시네요. 출입증 발급해드릴게요.” — 신원 확인 및 출입증 발급 담당
SP출입문 및 회의실“출입증이 있네요. 들어오세요.” — 인증된 사용자만 접근 허용

사용자는 IdP에서 신원을 확인받고 출입증(토큰)을 발급받은 뒤, SP에 출입증을 제시해 서비스에 접근하는 구조입니다. 이 일련의 과정이 바로 SSO(Single Sign-On) 의 핵심 흐름입니다. 한 번 로그인하면 여러 서비스(SP)들이 같은 IdP를 신뢰하기 때문에, 다시 로그인할 필요 없이 자동으로 인증이 이어집니다.


실제 동작 흐름

SSO나 OIDC 기반 로그인은 결국 “인증 주체(IdP)”와 “서비스 제공자(SP)” 간의 신뢰 교환 과정입니다. 아래는 사용자가 서비스를 이용할 때 실제로 일어나는 흐름입니다.

  1. 사용자가 서비스(SP)에 접근한다
  2. SP는 “로그인 했는지?” 확인
  3. 안 했으면 IdP 로그인 페이지로 이동
  4. 사용자가 IdP에서 로그인
  5. IdP는 “이 사용자 인증됨!” 이라는 증명서 를 SP에게 전달
  6. SP는 그 증명서를 믿고 접근 허용

이러한 동작을 한 문장으로 정리하면, 로그인은 IdP에서 수행되고, SP는 그 인증 결과만 신뢰합니다. 이 구조 덕분에 사용자는 여러 서비스에 대해 한 번의 로그인으로 여러 곳에 자동으로 접근(SSO) 할 수 있고, 각 서비스(SP)는 인증 책임을 IdP에 위임함으로써 보안과 관리 효율성을 동시에 얻을 수 있습니다.


SAML vs OIDC

  • SAML(Security Assertion Markup Language): 주로 기업 내부 시스템(SaaS, 사내 포털 등) 에서 쓰이는 전통적인 SSO 프로토콜. XML 기반이라 엔터프라이즈 환경에 최적화되어 있습니다.
  • OIDC(OpenID Connect): OAuth 2.0 위에서 동작하는 인증 프로토콜로, JSON 기반이라 웹·모바일 친화적이며 현대적인 서비스 로그인(Google, Kakao 등) 에 널리 사용됩니다.

결국 두 방식 모두 목적은 IdP가 인증한 사용자를 SP가 신뢰할 수 있도록 만드는 것입니다.


IdP-SP 구조를 쓸까? (SSO의 사용 이유)

앞서 본 것처럼, SSO는 IdP(인증 주체) 와 SP(서비스 제공자) 가 역할을 나누어 “로그인은 IdP가, 서비스 이용은 SP가” 담당하는 구조입니다. 이 구조를 사용하는 이유는 단순합니다. 사용자는 편리하게, 기업은 안전하게 서비스를 제공 할 수 있기 때문입니다.

장점설명
로그인 편의성한 번 로그인하면 여러 서비스(SP)를 자동으로 이용할 수 있습니다.
비밀번호 리스크 감소각 서비스에 비밀번호를 저장하지 않아도 되므로 탈취 위험이 줄어듭니다.
계정 관리 단순화계정 생성·삭제·권한 변경을 IdP 한 곳에서 중앙 관리할 수 있습니다.
보안 강화MFA(OTP, 인증 앱 등)를 IdP에 통합 적용하여 전체 보안을 강화할 수 있습니다.

주의사항

SSO나 OIDC를 도입할 때 기술적으로 복잡해 보이지만, 사실 현업에서 문제를 일으키는 부분은 대부분 “데이터 정의”와 “정책 합의”입니다. 아래 세 가지 항목만 명확히 맞춰두면 대부분의 연동은 매끄럽게 진행됩니다.

항목왜 중요한가
사용자 식별값(이메일/UUID)서비스끼리 동일 사용자를 정확히 이어야 함
사용자 그룹/역할 정보로그인 후 권한을 구분해야 함
로그아웃 정책한 서비스만 로그아웃할지, 전체 로그아웃할지 결정 필요

정리

  • IdP (Identity Provider) → “로그인을 담당하는 기관”
  • SP (Service Provider) → “서비스를 제공받는 쪽”
  • SSO(Single Sign-On) → 한 번 로그인하면 여러 서비스가 그 결과를 공유하는 구조
  • SP는 직접 로그인하지 않고, IdP가 인증한 결과를 그대로 신뢰합니다.

이러한 sso 사용을 통해 로그인 과정을 분리해 보안은 강화하고, 사용자 경험(UX)은 단순화한 구조를 활용 할 수 있습니다.


참고자료