SAML 2.0

SAML 2.0 (Security Assertion Markup Language 2.0) 은 웹 기반 인증·권한 부여 정보를 XML 형식으로 교환하기 위한 OASIS(Open Architecture to Enable Open Standards) 표준 프로토콜이다. 2005년에 제정된 SAML 2.0은 이전 버전(SAML 1.0/1.1) 대비 확장성·보안·상호운용성을 크게 향상시켰으며, 현재 기업 및 클라우드 서비스에서 싱글 사인온(SSO) 구현의 사실상의 표준으로 널리 사용된다.


1. 개요

  • 정식 명칭: Security Assertion Markup Language 2.0
  • 제정 기관: OASIS Security Services Technical Committee
  • 최초 발표: March 2005 (OASIS Standard)
  • 주요 목적: 서로 다른 도메인 간에 사용자의 인증 정보와 속성을 안전하게 전달하여, 별도의 로그인 절차 없이 연계 서비스에 접근하도록 함.

2. 핵심 개념

용어 정의
Assertion(주장) 발급자(IdP)가 인증·속성·권한 정보를 담아 서명·암호화한 XML 문서.
Protocol Assertion을 요청·전송·응답하는 메시지 흐름 정의(예: AuthnRequest, Response).
Binding SAML 메시지를 전송하는 전송 계층 방식. HTTP Redirect, HTTP POST, HTTP Artifact, SOAP 등이 있다.
Profile 특정 사용 시나리오에 맞게 Protocol·Binding·Assertion을 조합한 규격. 가장 널리 사용되는 것은 Web Browser SSO Profile.
Identity Provider (IdP) 사용자를 인증하고 Assertion을 발행하는 주체.
Service Provider (SP) Assertion을 검증하고 서비스 접근을 허용하는 주체.
Metadata IdP·SP 간에 엔드포인트, 인증서, 지원하는 Binding·Profile 등을 서술한 XML 파일로, 설정 자동화를 지원한다.

3. 작동 원리 (Web Browser SSO 흐름)

  1. SP 접근: 사용자가 SP에 접근하면 SP는 인증되지 않은 상태를 감지하고, IdP에 인증 요청(AuthnRequest)을 전송한다(보통 HTTP Redirect 혹은 POST).
  2. IdP 인증: 사용자는 IdP에 로그인(또는 기존 세션 사용)한다.
  3. Assertion 발행: IdP는 인증 성공 시 Assertion을 생성하고, 서명·필요 시 암호화한 뒤 Response 메시지에 담아 사용자의 브라우저에게 전송한다(HTTP POST).
  4. SP 검증: SP는 Assertion을 수신·검증(서명, 유효기간, AudienceRestriction 등)하고, 사용자를 인증된 상태로 전환한다.
  5. 서비스 제공: 사용자는 별도 로그인 절차 없이 SP가 제공하는 리소스에 접근한다.

4. 주요 특징 및 장점

  • 표준화된 XML 기반으로 다양한 플랫폼·언어에서 구현 가능.
  • 확장 가능한 메타데이터를 통해 설정 자동화 및 동적 신뢰 관계 구축.
  • 다중 인증 방식 지원(Password, X.509, OTP, 스마트카드 등) 및 Attribute 기반 접근 제어.
  • 보안 강화: Assertion 서명, 암호화, 시간 제한, AudienceRestriction, One‑Time Use 등.
  • 상호운용성: 주요 아이덴티티 공급자(Azure AD, Okta, Keycloak, ADFS 등)와 서비스 제공자(Google Workspace, Salesforce, ServiceNow 등) 간 표준 호환.

5. 보안 고려사항

위험 대응 방안
Assertion 변조 XML Signature 기반 서명 검증 및 신뢰할 수 있는 인증서 사용.
Replay Attack NotOnOrAfter 유효시간, OneTimeUse 조건, Recipient 검증.
Man‑in‑the‑Middle HTTPS(SSL/TLS)로 전송 채널 보호, Assertion 암호화.
XML External Entity (XXE) XML 파서의 안전 설정, 외부 엔티티 비활성화.
잘못된 메타데이터 정기적인 메타데이터 검증·갱신, 서명된 메타데이터 사용.

6. 주요 프로파일

  • Web Browser SSO Profile: 가장 일반적인 브라우저 기반 SSO 시나리오.
  • Enhanced Client or Proxy (ECP) Profile: 비브라우저 클라이언트(예: SOAP 기반 웹 서비스)용.
  • Identity Provider Discovery Profile: 사용자에게 IdP 선택 UI를 제공.
  • Attribute Query Profile: SP가 IdP에 사용자 속성을 질의.

7. 구현 및 도구

구분 대표 구현체·라이브러리
Identity Provider ADFS, Shibboleth IdP, Keycloak, Okta, Azure AD, Auth0
Service Provider Shibboleth SP, SimpleSAMLphp, Spring Security SAML, OneLogin SAML‑toolkit, pac4j
테스트·디버깅 SAML‑Tracer (브라우저 플러그인), SAML‑Tool.com, SAML‑Test‑Suite, OpenSAML (Java)
메타데이터 관리 XMLSignature, XMLEncryption, SAML‑Meta‑Editor (GUI)

8. 관련 표준·프로토콜

  • XML Signature (RFC 3275) – Assertion 서명.
  • XML Encryption (W3C Recommendation) – Assertion 암호화.
  • OAuth 2.0 / OpenID Connect – 현대 웹·모바일 인증 시나리오와 보완·대체 관계.
  • WS‑Federation – SOAP 기반 연동 시 SAML과 병행 사용.

9. 활용 사례

  1. 기업 내부 SSO: 사내 ERP·CRM·메일 시스템을 하나의 IdP(Azure AD)로 통합.
  2. 클라우드 서비스 연동: SaaS(예: Salesforce, ServiceNow)와 온프레미스 애플리케이션 간 연동.
  3. 학술 기관 연합: 대학 간 자원 공유를 위한 Shibboleth 기반 연합 인증.
  4. 정부 전자민원: 공공 포털에 대한 시민 인증·속성 제공.

10. 참고 문헌

  1. OASIS StandardSecurity Assertion Markup Language (SAML) V2.0 (Release 1.0), 2005.
  2. SAML Technical Overview, Microsoft Docs, 2023.
  3. Jon Crosby, Understanding SAML 2.0, O'Reilly Media, 2020.
  4. SAML Profiles, OASIS Security Services TC, 2022.
  5. RFC 7522 – Security Assertion Markup Language (SAML) 2.0 Assertion Profile for OAuth 2.0, IETF, 2015.

요약: SAML 2.0은 인증·속성 정보를 XML 기반으로 교환하는 국제 표준으로, 웹 브라우저 기반 싱글 사인온(SSO) 구현에 핵심적인 역할을 한다. IdP와 SP 간의 신뢰 관계와 메타데이터를 활용해 다양한 서비스와 안전하게 연동할 수 있으며, 현재 클라우드·기업·학술·공공 분야 등에서 폭넓게 적용되고 있다.

둘러보기

더 찾아볼 만한 주제