uncategorized

SAML 정리 (정리중)

What is SAML

SAML(Security Assertion Markup Language, /sæməl/)은
인증 정보 제공자(Identity Provider)와 서비스 제공자(Service Provider)간의 인증 및 인가 데이터를 교환하기 위한 XML기반의 개방현 표준 데이터 포맷 입니다. 주로 Single Sign-On(SSO) 구현에 사용되고 있으며, 현재는 2005년 3월에 OASIS표준이 된 SAML2.0을 메인으로 사용하고 있습니다.

Terms

  • Identity Provider(IdP) : 인증을 제공하고 인증 결과를 Service Provider에게 전달해주는 개체로 SAML Assertion을 발행하는 주체
  • Service Provider(SP) : 클라이언트가 접근하고자 하는 서비스
  • SAML Request : SP가 인증을 요청하기 위해 생성하는 인증 요청
  • SAML Assertion : 사용자 인증을 수행하기 위해 IdP가 SP에게 전달하는 XML. 사용자 이름, 권한, 역할 등의 내용이 적혀있으며 전자서명이 되어있음

간단 소개

  • IdP, SP, User Agent가 서로 어떻게 인증을 처리하는지

metadata

  • metadata 교환 내용

IdP initiated flow

  • TBD

SP initiated flow

SAML을 이용한 로그인이 SP측에서 시작될 때의 흐름입니다. 일반적으로 유저가 SP의 리소스에 접근을 시도하려고 할 때 이런 흐름으로 인증을 하게됩니다.

User AgentService ProviderIdentity ProviderRequest target resourceRedirect to SSO ServiceRequest SSO Service(Identify the user)Respond with XHTML form (SAML Assertion)Relay SAML AssertionRedirect to target resourceRequest to target resourceRespond with requested resourceUser AgentService ProviderIdentity Provider

Binding

  • Binding 종류 / 소개

Artifact

  • artifact가 뭔지 / 소개

Assertion

  • Assertion 자세히 소개

Security

  • 보안적으로 점검해야할 부분들

구체적 예시

  • 구체적 예시 소개

장단점

  • 장단점 소개

References

Share