3장. Red Hat JBoss Enterprise Application Platform을 사용한 SSO의 추가 사용 사례

기본 제공 기능 외에도 JBoss EAP는 안전한 토큰 서비스를 통해 브라우저 기반 SSO, 데스크탑 기반 SSO, SSO를 포함한 SSO를 위한 추가 사용 사례를 지원합니다.

3.1. SAML을 사용하는 브라우저 기반 SSO

브라우저 기반 SSO 시나리오에서는 서비스 프로바이더라고 하는 하나 이상의 웹 애플리케이션이 허브 및 스포크 아키텍처의 중앙 집중식 ID 프로바이더에 연결됩니다. ID 공급자(IDP)는 모든 서비스 프로바이더 또는 대화 상자의 ID 및 역할 정보에 대한 중앙 소스 또는 허브 역할을 합니다. 인증되지 않은 사용자가 서비스 프로바이더 중 하나에 액세스하려고 하면 해당 사용자가 IDP로 리디렉션되어 인증을 수행합니다. IDP는 사용자를 인증하고 주체 역할을 지정하는 SAML 토큰을 발행한 다음 요청된 서비스 프로바이더로 리디렉션합니다. 여기에서 SAML 토큰은 연결된 모든 서비스 프로바이더에서 사용자의 ID 및 액세스를 결정하는 데 사용됩니다. 서비스 프로바이더에서 시작하는 SSO를 사용하는 이 특정 방법을 서비스 프로바이더 시작 flow라고 합니다.

여러 SSO 시스템과 마찬가지로 JBoss EAP는 IDP 및 SP를 사용합니다. 두 구성 요소는 모두 JBoss EAP 인스턴스 내에서 실행되고 JBoss EAP 보안 하위 시스템과 함께 작동합니다. SAML v2, FORM 기반 웹 애플리케이션 보안 및 HTTP/POST 및 HTTP/Redirect 바인딩도 SSO를 구현하는 데 사용됩니다.

ID 프로바이더를 생성하려면 인증 및 권한 부여 메커니즘을 정의하는 JBoss EAP 인스턴스(예: LDAP 또는 데이터베이스) 에서 ID 저장소 역할을 할 보안 도메인을 생성합니다. 웹 애플리케이션(예: IDP.war )은 IDP를 idp-domain 과 함께 실행하는 데 필요한 추가 모듈인 org.picketlink 를 사용하도록 구성되어 있으며 동일한 JBoss EAP 인스턴스에 배포됩니다. IDP.war는 ID 공급자 역할을 합니다. 서비스 프로바이더를 생성하기 위해 SAML2LoginModule 을 인증 메커니즘으로 사용하는 sp-domain 과 같은 보안 도메인이 생성됩니다. 웹 애플리케이션(예: SP.war )은 추가 모듈인 org.picketlink 를 사용하도록 구성되었으며 sp-domain 을 사용하는 서비스 프로바이더가 포함됩니다. s.warsp-domain 이 구성되어 있고 이제 서비스 프로바이더인 JBoss EAP 인스턴스에 배포됩니다. 하나 이상의 SP(예: SP 2.war,SP3.war 등)에 대해 이 프로세스를 하나 이상의 JBoss EAP 인스턴스에 복제할 수 있습니다.

3.1.1. ID 공급자 시작 워크플로우

대부분의 SSO 시나리오에서 SP는 유효한 어설션을 사용하여 SP에 SAML 응답을 전송하는 IDP에 인증 요청을 전송하여 흐름을 시작합니다. 이를 SP 시작 흐름이라고 합니다. SAML 2.0 사양은 IDP 시작 또는 거부된 응답 flow라는 또 다른 흐름을 정의합니다. 이 시나리오에서는 서비스 프로바이더가 IDP로부터 SAML 응답을 받기 위해 인증 흐름을 시작하지 않습니다. 흐름은 IDP 측에서 시작됩니다. 인증되고 나면 사용자는 목록에서 특정 SP를 선택하고 SP URL로 리디렉션될 수 있습니다. 이 흐름을 활성화하기 위해 특별한 구성이 필요하지 않습니다.

워크스루

  1. 사용자가 IDP에 액세스합니다.
  2. IDP는 SAML 요청이나 응답이 없는 것을 확인하면 SAML을 사용하여 IDP 시작 흐름 시나리오가 있다고 가정합니다.
  3. IDP는 사용자가 인증해야 합니다.
  4. 인증 시 IDP에는 사용자가 모든 SP 애플리케이션에 연결되는 페이지를 가져오는 호스팅된 섹션이 표시됩니다.
  5. 사용자는 SP 애플리케이션을 선택합니다.
  6. IDP는 쿼리 매개 변수 SAML 응답에서 SAML 어설션을 사용하여 사용자를 SP로 리디렉션합니다.
  7. SP는 SAML 어설션을 확인하고 액세스를 제공합니다.

3.1.2. 글로벌 로그아웃

하나의 SP에서 시작된 글로벌 로그아웃은 IDP 및 모든 SP에서 사용자를 로그아웃합니다. 사용자가 글로벌 로그아웃을 수행한 후 SP 또는 IDP의 보안된 부분에 액세스하려고 하면 다시 인증해야 합니다.