어플리케이션

SAML(Security Assertion Markup Language)에 대해 알아보겠습니다.

forward error correction Circle 2025. 8. 15. 08:48
반응형

Ⅰ. SAML(Security Assertion Markup Language) 이란?

 웹 환경에서 인증(Authentication)과 인가(Authorization)를 안전하게 처리하기 위해 만들어진 XML 기반 표준 프로토콜입니다.
쉽게 말해, 서로 다른 사이트나 애플리케이션 간에 “이 사용자가 누구인지”를 안전하게 확인하고, 필요한 권한 정보를 전달하는 방식입니다. SAML을 사용하면 한 번 로그인한 뒤, 여러 서비스에 자동으로 접속할 수 있는 Single Sign-On(SSO) 환경을 구현할 수 있습니다.
 ⅰ. 제정 기관: OASIS(Open Administration for Structured Information Standards)에서 표준으로 지정
 ⅱ. Assertion: 사용자의 신원, 권한, 속성 정보를 담은 XML 문서

Ⅱ. SAML(Security Assertion Markup Language) 주요 구성 요소

 ⅰ. Service Provider(SP): 사용자가 실제로 접근하려는 서비스(예: 이메일, ERP, 클라우드 앱)
 ⅱ. Identity Provider(IdP): 사용자의 신원을 확인하고 인증 정보를 발급하는 시스템
 ⅲ. User Agent: 사용자의 웹 브라우저나 앱

Ⅲ. SAML(Security Assertion Markup Language) 목적

 ⅰ. Single Sign-On(SSO)
    1) 한 번 로그인으로 여러 애플리케이션에 자동 접속
    2) 로그인 반복 입력 없이 사용자 경험(UX) 향상
 ⅱ. 보안 강화
    1) 패스워드를 서비스 제공자(SP)에 저장하지 않아 유출 위험 최소화
    2) XML 디지털 서명, 암호화를 통해 메시지 위변조·도청 방지
 ⅲ. 상호 운용성
    1) 다양한 제품(IdP, SP) 간 호환 가능
    2) 표준 기반이라 별도 맞춤 개발 없이 연계 가능

Ⅳ. SAML(Security Assertion Markup Language) 특징

특징 설명
XML 기반 토큰 구조화된 XML 문서로 인증·인가 정보 교환
브라우저 리디렉션 지원 HTTP Redirect, HTTP POST 방식으로 인증 흐름 처리
보안성 XML Signature(디지털 서명), XML Encryption(암호화)
확장성 다양한 속성(Attribute)과 인증 컨텍스트 확장 가능
ID 페더레이션 여러 조직 간 SSO 가능, 메타데이터 기반 신뢰 관계 설정

Ⅴ. SAML(Security Assertion Markup Language)  동작 방식

  ⅰ. SP-initiated SSO 흐름
     1) 사용자가 서비스(SP)에 접근
     2) SP가 SAML 인증 요청 생성 → 브라우저를 통해 IdP로 전송
     3) IdP에서 사용자 인증
     4) IdP가 SAML 응답(Assertion 포함)을 브라우저로 전달
     5) 브라우저가 SP에 Assertion 전달 → SP가 검증 후 로그인 완료
 ⅱ. IdP-initiated SSO 흐름
    1) 사용자가 IdP 포털에서 로그인
    2) IdP가 Assertion을 SP로 직접 전달
    3) SP가 검증 후 로그인 처리

대부분의 서비스 환경에서는 SP-initiated 방식을 많이 사용합니다.

Ⅵ. SAML(Security Assertion Markup Language) 구성 요소

구성 요소 설명
Assertion 인증·인가·속성 정보가 담긴 XML 문서
Protocol 요청/응답 메시지 규칙
Binding 메시지 전송 방식(HTTP Redirect, HTTP POST, SOAP 등)
Profile 특정 시나리오에 맞춘 프로토콜·바인딩 조합

Ⅶ. SAML(Security Assertion Markup Language) 설정 방법

 ⅰ. 메타데이터 교환: IdP와 SP의 엔드포인트, 공개키, 지원 바인딩 정보를 XML 파일로 교환
 ⅱ. SP 설정: IdP 정보 등록, SAML 라이브러리(Shibboleth, SimpleSAMLphp 등) 구성
 ⅲ. IdP 설정: 사용자 저장소(AD, LDAP) 연동, SP 정보 등록, 속성 매핑
 ⅳ. 테스트: SP 접속 후 Assertion 검증, 서명·만료 시간 확인

Ⅷ. SAML(Security Assertion Markup Language) 활용 사례

 ⅰ. 기업 포털 통합 로그인: 사내 모든 앱을 하나의 로그인으로 이용
 ⅱ. 교육·연구기관 연계: 대학, 연구소 간 자료 공유 SSO
 ⅲ. 클라우드 서비스 연동: AWS, Google Workspace, Salesforce 로그인 연동

반응형