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)에 최적화
- 메타데이터를 통한 신뢰 관계 구축
작동 방식
- 사용자가 서비스 제공자(SP)에게 접근 요청
- SP는 사용자를 신원 제공자(IdP)로 리디렉션
- IdP는 사용자를 인증하고 SAML 어설션(assertion) 생성
- 사용자는 SAML 어설션과 함께 SP로 리디렉션
- SP는 SAML 어설션을 검증하고 사용자 접근 허용
OpenID Connect (OIDC)
OpenID Connect는 2014년에 OpenID Foundation에 의해 개발된 OAuth 2.0 위에 구축된 인증 레이어이다.
핵심 특징
- JSON/REST 기반 아키텍처
- OAuth 2.0을 확장하여 인증 기능 추가
- 모바일 앱, 웹, SPA에 최적화
- 가벼운 프로토콜로 구현 용이
- JWT(JSON Web Token)를 사용한 토큰 기반 인증
작동 방식
- 사용자가 클라이언트(앱/웹)에 접근
- 클라이언트는 사용자를 OpenID Provider(OP)로 리디렉션
- OP는 사용자를 인증하고 ID 토큰과 액세스 토큰 발급
- 클라이언트는 토큰을 검증하고 필요시 UserInfo 엔드포인트에서 추가 정보 요청
- 사용자 인증 완료 및 접근 허용
주요 차이점 비교 표
특성 | SAML | OpenID Connect |
---|---|---|
기반 기술 | XML | JSON/REST |
복잡성 | 높음 | 낮음 |
개발 시기 | 2002년 | 2014년 |
토큰 형식 | XML 어설션 | JWT (JSON Web Token) |
통신 방식 | 대부분 리디렉션 | 다양한 흐름(Flow) 지원 |
모바일 지원 | 제한적 | 우수함 |
주요 사용처 | 엔터프라이즈 SSO | 소비자 애플리케이션, 모바일 앱 |
권한 부여 | 제한적 | OAuth 2.0 통합으로 강력함 |
구현 난이도 | 높음 | 중간 |
표준화 기관 | OASIS | OpenID Foundation |
메시지 크기 | 큼 (XML) | 작음 (JSON) |
실시간 사용자 정보 | 제한적 | UserInfo 엔드포인트 통해 제공 |
장점 | 높은 보안성, 강력한 엔터프라이즈 지원 | 구현 용이성, 모바일 최적화, OAuth 통합 |
단점 | 구현 복잡, 모바일 지원 제한 | 엔터프라이즈 기능 부족 |
선택 가이드
- SAML 선택이 좋은 경우:
- 대기업 또는 기존 엔터프라이즈 환경
- 강력한 보안 요구사항
- 복잡한 인증 시나리오
- B2B(기업 간 거래) 애플리케이션
- OpenID Connect 선택이 좋은 경우:
- 모바일 앱 개발
- 현대적인 웹 애플리케이션(SPA)
- B2C(기업과 소비자 간) 애플리케이션
- API 기반 아키텍처
- 개발 용이성 우선시
용어 정리
용어 | 설명 |
---|---|