SAML이란?
SAML이란?
**SAML(Security Assertion Markup Language)**은 XML 기반의 개방형 표준 프로토콜로, 서로 다른 시스템 간에 사용자 인증 및 권한 부여 정보를 안전하게 교환할 수 있도록 설계되었습니다123. SAML은 주로 기업 환경에서 싱글 사인온(SSO, Single Sign-On) 구현에 널리 사용되며, 사용자가 한 번만 로그인하면 다양한 웹 애플리케이션이나 서비스에 반복 로그인 없이 접근할 수 있게 해줍니다456.
주요 구성 요소
- ID 공급자(IdP, Identity Provider): 사용자의 신원을 인증하고, 인증 정보를 서비스 공급자에게 전달하는 역할을 합니다126.
- 서비스 공급자(SP, Service Provider): 사용자가 접근하려는 웹 애플리케이션이나 서비스로, IdP로부터 받은 인증 정보를 바탕으로 접근 권한을 부여합니다126.
동작 원리
- 사용자가 서비스 공급자(SP)에 접근을 시도합니다.
- SP는 사용자를 ID 공급자(IdP)로 리디렉션하여 인증을 요청합니다.
- 사용자가 IdP에서 로그인하면, IdP는 인증된 사용자 정보를 SAML 어설션(assertion) 형태의 XML 문서로 SP에 전달합니다7.
- SP는 이 어설션을 검증한 후 사용자의 접근을 허가합니다891.
이 과정에서 사용자는 여러 서비스에 반복적으로 로그인할 필요 없이 한 번의 인증만으로 다양한 리소스에 접근할 수 있습니다.
SAML의 장점
- 보안 강화: 인증 정보가 암호화된 XML로 안전하게 전달되며, 신원 도용 및 사이버 위협으로부터 보호합니다563.
- 사용 편의성: 한 번의 로그인으로 여러 서비스에 접근할 수 있어 사용자 경험이 향상됩니다56.
- 확장성 및 표준화: 다양한 플랫폼과 서비스에서 광범위하게 채택되고 있어, 시스템 간 통합이 용이합니다63.
- 관리 효율성: 중앙 집중식 사용자 관리가 가능해 관리 비용과 복잡성이 줄어듭니다6.
활용 예시
- 기업용 SSO(싱글 사인온) 솔루션
- 클라우드 서비스(Office 365, Salesforce 등)와의 연동
- 대규모 조직의 통합 인증 시스템
SAML vs. OAuth2
구분 | SAML | OAuth2 |
---|---|---|
데이터 형식 | XML 기반 | JSON 기반 |
주요 용도 | SSO, 기업 인증 | API 권한 위임, 모바일 인증 |
보안 방식 | XML 서명 및 암호화 | 액세스 토큰, HTTPS |
사용 환경 | 주로 웹/엔터프라이즈 | 웹, 모바일, API |
SAML은 주로 기업 환경의 SSO에, OAuth2는 API 기반의 서비스나 모바일 환경에 적합합니다510.
요약
SAML은 서로 다른 시스템 간에 안전하게 인증 및 권한 정보를 교환할 수 있게 해주는 XML 기반의 표준 프로토콜입니다. SSO 환경에서 가장 널리 사용되며, 보안성, 편의성, 확장성을 두루 갖춘 현대 인증 인프라의 핵심 요소입니다156.
-
https://www.fortinet.com/kr/resources/cyberglossary/saml ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
https://www.entrust.com/ko/resources/learn/what-is-saml ↩︎ ↩︎ ↩︎
-
https://www.cloudflare.com/ko-kr/learning/access-management/what-is-saml/ ↩︎
-
https://lab.wallarm.com/what/saml-인증/?lang=ko ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
https://nginxstore.com/blog/nginx/saml-이란-무엇인가/ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
-
https://www.microsoft.com/ko-kr/security/business/security-101/what-is-security-assertion-markup-language-saml ↩︎
-
https://cpl.thalesgroup.com/ko/access-management/saml-authentication ↩︎
-
https://www.fortinet.com/kr/resources/cyberglossary/saml-vs-oauth ↩︎