SAML vs. OpenID Connect

SAML(Security Assertion Markup Language)과 OpenID Connect는 모두 사용자 인증 및 권한 부여를 위한 핵심 프로토콜이지만, 역사, 구현 방식, 용도 면에서 중요한 차이점이 있다.

SAML (Security Assertion Markup Language)

SAML은 2002년에 OASIS(Organization for the Advancement of Structured Information Standards)에 의해 개발된 XML 기반 프레임워크이다.

핵심 특징

  • XML 형식으로 인증 정보를 교환
  • 주로 엔터프라이즈 환경과 대기업에서 사용
  • 복잡한 구현이지만 높은 보안성 제공
  • 웹 기반 SSO(Single Sign-On)에 최적화
  • 메타데이터를 통한 신뢰 관계 구축

작동 방식

  1. 사용자가 서비스 제공자(SP)에게 접근 요청
  2. SP는 사용자를 신원 제공자(IdP)로 리디렉션
  3. IdP는 사용자를 인증하고 SAML 어설션(assertion) 생성
  4. 사용자는 SAML 어설션과 함께 SP로 리디렉션
  5. SP는 SAML 어설션을 검증하고 사용자 접근 허용

OpenID Connect (OIDC)

OpenID Connect는 2014년에 OpenID Foundation에 의해 개발된 OAuth 2.0 위에 구축된 인증 레이어이다.

핵심 특징

  • JSON/REST 기반 아키텍처
  • OAuth 2.0을 확장하여 인증 기능 추가
  • 모바일 앱, 웹, SPA에 최적화
  • 가벼운 프로토콜로 구현 용이
  • JWT(JSON Web Token)를 사용한 토큰 기반 인증

작동 방식

  1. 사용자가 클라이언트(앱/웹)에 접근
  2. 클라이언트는 사용자를 OpenID Provider(OP)로 리디렉션
  3. OP는 사용자를 인증하고 ID 토큰과 액세스 토큰 발급
  4. 클라이언트는 토큰을 검증하고 필요시 UserInfo 엔드포인트에서 추가 정보 요청
  5. 사용자 인증 완료 및 접근 허용

주요 차이점 비교 표

특성SAMLOpenID Connect
기반 기술XMLJSON/REST
복잡성높음낮음
개발 시기2002년2014년
토큰 형식XML 어설션JWT (JSON Web Token)
통신 방식대부분 리디렉션다양한 흐름(Flow) 지원
모바일 지원제한적우수함
주요 사용처엔터프라이즈 SSO소비자 애플리케이션, 모바일 앱
권한 부여제한적OAuth 2.0 통합으로 강력함
구현 난이도높음중간
표준화 기관OASISOpenID Foundation
메시지 크기큼 (XML)작음 (JSON)
실시간 사용자 정보제한적UserInfo 엔드포인트 통해 제공
장점높은 보안성, 강력한 엔터프라이즈 지원구현 용이성, 모바일 최적화, OAuth 통합
단점구현 복잡, 모바일 지원 제한엔터프라이즈 기능 부족

선택 가이드

  1. SAML 선택이 좋은 경우:
    • 대기업 또는 기존 엔터프라이즈 환경
    • 강력한 보안 요구사항
    • 복잡한 인증 시나리오
    • B2B(기업 간 거래) 애플리케이션
  2. OpenID Connect 선택이 좋은 경우:
    • 모바일 앱 개발
    • 현대적인 웹 애플리케이션(SPA)
    • B2C(기업과 소비자 간) 애플리케이션
    • API 기반 아키텍처
    • 개발 용이성 우선시

용어 정리

용어설명

참고 및 출처