SAML이란?

최태준·2023년 3월 3일

인증 방식

목록 보기
1/2

SAML이란?

  • 네트워크를 통해 여러 컴퓨터에서 보안 자격 증명을 공유할 수 있도록 하는 공개 표준
  • SAML은 SSO를 구현하는 한 가지 방법이며, 실제 SSO는 SAML의 가장 일반적인 사용사례

SAML의 인증과 허가

  • 인증(Authentication): 사용자가 자신이 주장하는 사람임을 확인
  • 허가(Authorization): 사용자가 특정 시스템이나 콘텐츠에 접속할 수 있는 권한이 있는지 확인

SAML의 구성요소

  • SAML 공급자(provider)

    • 사용자가 원하는 서비스에 접속하도록 도와주는 개체
    • SAML 서비스를 제공하거나 사용하는 시스템을 칭함
    • ID 공급자(IdP)
      • 가장 중요한 서비스 공급자
      • 실제로 사용자가 자신이 주장하는 사람인지 확인(인증 제공)
    • 서비스 공급자(SP)
      • Idp를 전달하고 지정된 사용자에게 요청된 리소스에 액세스 하는 권한 부여
      • SP는 사용자에게 권한을 부여하기 위해 IdP의 인증이 필요함
      • 두 시스템이 동일한 언어를 공유하므로 사용자는 한번만 로그인

  • SAML 어설션(assertion)

    • 인증정보가 전송되는 XML 문서
    • ID 공급자가 권한이 있다고 결정하면 어설션을 서버에 보내 실제로 해당 서비스를 제공

SAML 플로우

유저(브라우저)는 어플리케이션의 일부 리소스에 접근하려고 한다.


  1. 서비스 제공자는 시스템에서 인증되지 않을 경우 인증 프로세스를 시작
  2. 서비스 공급자가 적절한 ID 공급자를 결정하고 리다렉션
  3. 브라우저가 SSO service(identity provider)에 인증 요청 전송
  4. SSO 서비스는 서비스 공급자가 SAMLResponse 매개 변수에 필요로 하는 인증 정보를 포함하는 XHTML 문서를 반환
  5. SAMLResponse 매개 변수가 서비스 제공자에게 전달
  6. 서비스 공급자는 이 응답을 처리하고 사용자를 위해 보안 컨텍스트 작성 후 반환(사용자가 로그인하고 요청한 리소스의 위치 반환)
  7. 전달 받은 정보를 이용해 리소스를 다시 요청
  8. 리소스 반환

SAML 플로우 추가 자료

SAML의 이점

  • 사용자 경험 개선

    • SAML은 애플리케이션과 서비스에 더욱 손쉽게 로그인
  • 자격 증명 분실 감소

    • 여러곳에서 로그인을 반복하다보면 비밀번호의 자격 증명의 도난 위험이 증가
    • SAML을 사용하면 하나의 사용자 이름과 비밀번호만 필요
  • 보안 강화

    • 안전한 아이덴티 공급업체를 통해 인증을 제공하기 때문에 자격 증명이 직접 전송되므로 파싱이나 아이덴티티 탈취 가능성 최소화
  • 비용 절감

    • 인증정보 관리가 최소화되어 개발 비용 최소화
  • 사용자 관리 간소화

    • SAML은 각 사용자를 단일 디렉터리에서 관리하기 때문에 사용자 관리가 용이
profile
그냥 되는건 없고, 안되는건 없다

0개의 댓글