Ⅰ. 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 로그인 연동
'어플리케이션' 카테고리의 다른 글
| 웹 크롤러(Web Crawler) 에 대해 알아보겠습니다. (0) | 2025.10.14 |
|---|---|
| 검색엔진 최적화(Search Engine Optimization, SEO)에 대해 알아보겠습니다. (0) | 2025.10.13 |
| 웹 소켓(Web Socket) 에 대해 알아보겠습니다. (1) | 2025.08.08 |
| HTTP(Hyper Text Transfer Protocol)에 대해 알아보겠습니다. (1) | 2025.08.04 |
| 가비지 컬렉션(Garbage Collection, GC)에 대해 알아보겠습니다. (2) | 2025.07.28 |