SAML

 

- 마크업 랭귀지

인증 정보 제공자(identity provider)와 서비스 제공자(service provider) 간의 인증 및 인가 데이터를 교환하기 위한 XML 기반의 개방형 표준 데이터 포맷이 SAML이다. SAML이 기술하는 가장 중요한 요구사항은 웹 브라우저 통합 인증(SSO)이다.

 

Why SAML ?

 

SAML은 확장되는 수많은 플랫폼, 디지털 접점 및 장치에서 사용자를 인증하고 권한을 부여하는 안전한 방법을 제공합니다.

 

SAML은 IdP(사용자 자격 증명을 보유하는)와 SP 간에 IdP 방화벽 내부에서 발생하는 토큰 기반 인증 교환을 활성화하기 때문에 여러 웹 응용 프로그램 암호에 대한 필요성을 느끼지 못합니다. 

 

SAML은 SSO(Single Sign-On) 기능을 활성화하여 주요 문제를 해결합니다. 즉, 사용자가 일정 기간 동안 단일 자격 증명 집합으로 여러 속성에 대해 등록 또는 로그인하고 권한을 부여할 수 있습니다. SAML은 또한 단일 로그아웃 기능을 활성화하여 사용자가 한 사이트에서 로그아웃할 때 해당 회사가 소유한 다른 모든 서비스 제공업체에서 자동으로 로그아웃되도록 합니다.

 

SAML  용어

  • Identity Provider(IDP) : 인증의 중앙 집중식 지점 - SSO내에서의 ID저장소 
  • Service Provider(SP) : 유저가 로그인을 시도하는 응용 프로그램
  • SAML Request : SP가 IDP에게 커뮤니케이션을 보내는 것
  • SAML Response : IDP가 SAML Request에 응답하는 것 
  • Assertion : SAML Response에 담은 ID제공자가 사용자 인증을 포함하는 서비스 제공자에게 보내는 XML문서
    • Assertion은 인증/속성/권한 부여 세 가지 유형이 있다. 
      • 인증 Assertion은 사용자 식별을 증명하고, 로그인 한 시간과 인증 방법을 제공한다. 
      • 속성 Assertion은 SAML 속성을 서비스 공급자에게 전달합니다. SAML 속성은 사용자에 대한 정보를 제공하는 특정 데이터 조각입니다. 
      • 권한 부여 결정 Assertion은 사용자가 서비스를 사용할 수 있는 권한이 있는지 또는 IDP가 암호 오류 또는 서비스에 대한 권한 부족으로 인해 요청을 거부했는지 여부를 나타냅니다. 
  • XML Signatures (DSig) : Assertion이 사용하는 XML 서명
  • Assertion Consumer Service : SP에서 Assertion을 받는 특정 EndPoint이며 XML Document를 검사한다. 
  • Attribute : SAML Response에는 유저에 대한 여러 정보들 
  • Relay State: SAML Response에서 매우 중요하게 알아야 되는 정보들

SAML 사용 예에서 주체는 서비스를 서비스 제공자로부터 요청한다. 이 서비스 제공자는 식별 어서션(assertion)을 인증 정보 제공자로부터 요청하여 가져온다. 이 어서션(assertion)에 기초하여, 서비스 제공자는 접근 제어 결정을 할 수 있다. 즉, 연결된 주체에 대해 일부 서비스를 수행할지의 여부를 결정할 수 있다.

 

 

위 용어를 토대로 SAML을 설명하자면

IdP(ID 공급자)가 SP(서비스 공급자)에 인증 자격 증명을 전달할 수 있도록 하는 open standard이다.
SAML을 통해 하나의 자격 증명 세트를 사용하여 다양한 웹 사이트에 로그인할 수 있게 하며
ID 공급자와 서비스 공급자 간에 사용자 인증 및 권한 부여를 전달하는 안전한 방법이다.

 

How it works?

  1. 사용자가 Google에서 호스팅하는 서비스 또는 애플리케이션에 연결을 시도합니다.
  2. 서비스(응용 프로그램) 파트너는 파트너의 SSO 서비스에 대한 URL에 인코딩 및 포함된 SAML 인증 요청을 생성합니다. 식별자로 설정된 매개변수는 수정이나 검사 없이 다시 전달됩니다.
  3. 애플리케이션은 파트너의 SSO 서비스에 제출할 인코딩된 SAML 인증 요청을 포함하는 리디렉션을 사용자의 브라우저로 보냅니다.ID 파트너는 SAML 요청을 디코딩하고 사용자를 인증합니다.
  4. ID 파트너는 인증된 사용자의 ID 및 속성이 포함된 SAML 어설션을 생성합니다.
  5. 인코딩된 SAML 응답은 브라우저로 다시 전달되고 브라우저는 응답을 ACS(액세스 제어 서버) URL로 보냅니다.
  6. SAML 2.0 사양에 따라 이 응답은 파트너의 공개 및 비공개 DSA/RSA 키로 디지털 서명됩니다.
  7. 사용자가 Google 호스팅 애플리케이션에 로그인되어 있습니다.
사용자가 SAML 지원 애플리케이션에 로그인하면 서비스 제공자가 적절한 ID 제공자에게 권한 부여를 요청합니다. ID 제공자는 사용자의 자격 증명을 인증한 다음 사용자에 대한 권한을 서비스 제공자에게 반환하고 사용자는 이제 애플리케이션을 사용할 수 있습니다.
 

+ 정확하게 구현하지 않으면 보안에 취약한 점이 있기 때문에 주의가 필요하다.

 

 

 

출처 

 

통합 인증 - 위키백과, 우리 모두의 백과사전

통합 인증(영어: Single Sign-On; SSO)은 한 번의 인증 과정으로 여러 컴퓨터 상의 자원을 이용 가능하게 하는 인증 기능이다. 싱글 사인온, 단일 계정 로그인, 단일 인증이라고 한다. 예를 들어 어느

ko.wikipedia.org

https://web.archive.org/web/20160304032626/http://www.gigya.com/blog/the-basics-of-saml/

 

The Basics of SAML • Gigya

Gigya is the leader in customer identity management. Read our post, The Basics of SAML.

web.archive.org

 

+ Recent posts