SAML 파서

SAML(Security Assertion Markup Language)은 ID 공급자(IdP)와 서비스 공급자(SP) 간에 인증 및 권한 부여 데이터를 교환하기 위한 XML 기반 표준입니다. 이 도구는 URL에서 SAML 메시지를 디코딩하고, Base64 및 DEFLATE 인코딩을 처리하며, 검사를 위해 XML을 정렬하여 출력합니다.

사양

주요 사용 사례

  • 엔터프라이즈 싱글 사인온(SSO) 인증 흐름 디버그
  • ID 공급자(Okta, Azure AD, ADFS)의 SAML 어설션 검사
  • 서비스 간 SAML 통합 문제 해결
  • 어설션 속성 및 NameID 값 검증
  • AuthnContext 및 세션 매개변수 분석
  • 보안 검토를 위한 SAML 구성 감사

기능

  • SAML AuthnRequest 메시지 파싱 (SP에서 IdP로)
  • SAML Response 및 Assertion 디코딩 (IdP에서 SP로)
  • URL 쿼리 매개변수에서 SAMLRequest 및 SAMLResponse 추출
  • Base64 인코딩 및 DEFLATE 압축 처리 (HTTP-Redirect 바인딩)
  • 구문 강조가 포함된 XML 구조 정렬 출력
  • 메시지 개요 표시 (유형, ID, IssueInstant, Destination, Status)
  • Issuer, Subject/NameID 및 Conditions 추출
  • AttributeStatement에서 어설션 속성 표시
  • 서명 존재 표시기

예제

SAML Response URL

사용해 보기 →

쿼리 문자열에 Base64로 인코딩된 SAML Response를 포함하는 URL.

https://sp.example.com/acs?SAMLResponse=PHNhbWxwOlJlc3BvbnNlLz4=

  • SAML은 두 가지 주요 바인딩을 사용합니다: HTTP-Redirect (deflate+base64를 사용하는 GET)와 HTTP-POST (base64를 사용하는 POST).
  • RelayState 매개변수는 SSO 흐름 전체에서 원래 요청된 URL을 보존합니다.
  • SAML 어설션은 서명, 암호화 또는 둘 다 될 수 있습니다. 이 도구는 디코딩된 내용을 표시합니다.
  • 어설션 타이밍을 검증하려면 NotBefore 및 NotOnOrAfter 조건을 확인하세요.

이해하기 SAML 파서

SAML(Security Assertion Markup Language)은 ID 공급자(IdP)와 서비스 공급자(SP) 간에 인증 및 권한 부여 데이터를 교환하기 위한 XML 기반 오픈 표준입니다. 2005년 OASIS에서 발표한 SAML 2.0은 엔터프라이즈 싱글 사인온(SSO)의 주요 프로토콜로, 직원이 한 번 인증하면 여러 애플리케이션에 접근할 수 있게 합니다.

SAML SSO 흐름은 다음과 같이 작동합니다: 사용자가 서비스 공급자에 접근하려고 하면, SP가 AuthnRequest를 생성하고 브라우저를 IdP로 리다이렉트하며, IdP가 사용자를 인증하고 Assertion을 포함한 SAML Response를 생성한 후, 브라우저가 이 Response를 POST로 SP에 다시 보냅니다. 어설션에는 사용자 ID(NameID), 속성(이메일, 그룹, 역할), 조건(유효 기간, 대상 제한)이 포함됩니다.

SAML 메시지는 바인딩을 사용하여 전송됩니다. HTTP-Redirect 바인딩은 DEFLATE 압축과 Base64 인코딩을 사용하여 XML을 URL 쿼리 매개변수에 인코딩합니다. HTTP-POST 바인딩은 Base64만 사용하며 자동 제출 폼을 통해 전송합니다. SAML 디버깅에는 이러한 계층을 디코딩하여 기본 XML을 검사해야 합니다.

SAML 어설션은 서명(IdP에서 왔음을 증명), 암호화(중간자가 내용을 읽지 못하도록 방지) 또는 둘 다 가능합니다. SSO 문제를 해결할 때 첫 번째 단계는 항상 SAML Response를 디코딩하고 어설션의 조건, 대상, 타임스탬프, 속성 값을 확인하는 것입니다.

SAML과 OAuth 2.0/OpenID Connect는 서로 다른 목적을 위해 사용됩니다. SAML은 브라우저 리다이렉트를 통해 전송되는 XML 기반 어설션을 사용하는 엔터프라이즈 SSO용으로 설계되었으며, ADFS 및 Okta 같은 ID 공급자가 있는 기업 환경에서 가장 일반적입니다. OAuth 2.0은 JSON 토큰을 사용하는 API 접근을 위한 권한 부여 프레임워크이며, OpenID Connect는 JWT를 사용하여 OAuth 위에 인증 계층을 추가합니다. OIDC는 최신 웹 및 모바일 애플리케이션에서 더 일반적이며, SAML은 기업 IT 환경에서 계속 지배적입니다.

SAML 메시지는 전송을 위해 인코딩되기 때문에 종종 이해하기 어려운 문자열로 나타납니다. HTTP-POST 바인딩에서는 XML이 Base64로 인코딩됩니다. HTTP-Redirect 바인딩에서는 XML이 먼저 DEFLATE 압축된 후 Base64로 인코딩되고, 이후 URL 인코딩됩니다. 원본 XML을 읽으려면 이러한 계층을 올바른 순서로 되돌려야 합니다. 이 도구는 사용된 바인딩에 관계없이 모든 디코딩 단계를 자동으로 처리합니다.

SAML 오류를 해결할 때 여러 일반적인 원인을 확인하세요: IdP와 SP 간의 시간 차이로 어설션 타임스탬프 검증이 실패할 수 있습니다. Audience 요소는 SP에 구성된 엔터티 ID와 정확히 일치해야 합니다. 어설션의 NotOnOrAfter 시간이 지났을 수 있습니다. Destination 속성은 SP의 Assertion Consumer Service(ACS) URL과 일치해야 합니다. 최근에 인증서가 교체된 경우 SP에 IdP의 현재 서명 인증서가 없을 수 있습니다. RelayState 매개변수도 SSO 흐름에서 중요한 역할을 합니다 — 인증 리다이렉트 과정에서 사용자가 원래 요청한 URL을 보존하여, 성공적인 인증 후 SP가 사용자를 처음 접근하려 했던 페이지로 다시 리다이렉트할 수 있게 합니다.

← 전체 도구로 돌아가기