수색…


비고

SAML2.0은 서비스 공급자와 ID 공급자간에 인증 및 권한 부여 데이터를 전송하는 데 사용되는 공개 표준입니다.

가장 보편적 인 사용법은 웹 기반 SSO입니다. SAML은 사용자가 인증 과정에서 두 시스템을 직접 연결할 필요없이 다른 시스템의 자격 증명을 사용하여 응용 프로그램에 로그인 할 수있게합니다.

SAML2.0 인증 흐름

SAML은 세 가지 주요 역할을 지정합니다.

  • ID 제공자 (IdP)

    사용자의 신원을 제공하고 유지하는 당사자. ADFS 또는 사용자 지정 데이터베이스 솔루션과 같은 디렉터리 서비스 일 수 있습니다.

  • 서비스 공급자 (SP)

    서비스 공급자는 사용자가 로그인을 시도하는 실제 서비스 입니다. 이것은 웹 사이트, 응용 프로그램 또는 사용자가 로그인해야하는 모든 서비스 일 수 있습니다.

  • 교장 / 사용자

    실제 사용자가 요청을 시작하거나 서비스 공급자 (SP)로부터 리소스에 액세스하려고합니다.

주요 SAML 사용 사례는 Web Based SSO입니다 . SAML 프로세스는 사용자의 브라우저에서 IdP와 SP 사이의 토큰 캐리어 역할을하는 일련의 리디렉션에 의해 수행됩니다.

SAML을 사용하는 웹 기반 SSO 에는 다음과 같은 두 가지 흐름이 있습니다.

  • ID 공급자 (IdP) 시작됨

    사용자는 IdP에 로그인 한 다음 선택한 SP로 전달됩니다. 예를 들어 사용자는 회사 인트라넷에 로그인하여 사용 가능한 모든 응용 프로그램을 제공받습니다.

  • 서비스 공급자 (SP) 시작됨

    사용자는 응용 프로그램에 로그인하려고 시도하지만 IdP로 전달되어 실제 인증을 수행합니다. 예를 들어 사용자가 원격 SaaS 애플리케이션에 로그인하려고 시도하지만 회사 IdP로 전달되어 사용자가 회사 자격 증명을 사용하여 원격 애플리케이션에 로그인 할 수 있습니다.

SP 시작 흐름은 아래 워크 플로에 의해 크게 시각화됩니다.

SAML 기반 인증 흐름 출처 : Wikipedia

  1. 사용자가 특정 애플리케이션 또는 웹 페이지의 리소스에 액세스하려고 시도합니다.
  2. 사용자가 외부 IdP를 사용하여 로그인을 시도하도록 지정합니다. SP는 SAML 어설 션을 생성하고이를 (일반적으로 POST 또는 GET 변수를 통해) 전달하여 IdP로 전달합니다
  3. 사용자는 IdP에 대해 자신을 인증합니다.
  4. 서명 된 주장 및 토큰은 IdP에 의해 생성된다.
  5. 서명 된 어설 션과 토큰은 SP에 다시 전달됩니다 (POST 또는 GET 변수를 사용하여 다시). SP에 세션이 성공적으로 시작되면
  6. 또한 사용자는 SP와의 활성 세션 (쿠키를 통한)이있는 동안 SP에서 추가 리소스를 요청할 수 있으므로 모든 요청에 ​​대해 IdP로 인증 할 필요가 없습니다.

SAML 디버깅 도구

모든 요청과 주장이 앞뒤로 진행되면 SAML 주장과 주장을 디버깅하는 것이 번거로울 수 있습니다.

SAML에서 핵심 원칙은 IdP와 SP 사이에 직접 연결을 필요로하지 않기 때문에 사용자의 브라우저는 둘 사이의 메시지 전달자 역할을합니다. 이 때문에 모든 통신은 암호화되었지만 사용자의 브라우저를 거칩니다.

다양한 디버그 도구를 사용하여 IdP와 SP간에 정확한 통신 및 요청을 전달하고 전달할 수 있습니다.

시작하려면 다음과 같이 시작해야하는 다양한 브라우저를위한 몇 가지 도구가 있습니다.

크롬

Firefox

SAML 추적기, SAML 요청 디버깅 용 예를 들어 SAML Tracer 를 사용하면 테스트 및 디버깅 중에 실시간으로 디코딩 된 SAML 어설 션 및 요청을 볼 수 있습니다



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow