5.4. Red Hat JBoss Enterprise Application Platform에서 웹 애플리케이션용 SSO

이 시나리오에서는 웹 애플리케이션이 JBoss EAP에서 클러스터형 SSO와 비클러스터형 SSO를 사용하는 방법을 보여줍니다. JBoss EAP 인스턴스 4개가 생성됩니다. EAP1,EAP2,EAP3, EAP4. EAP1EAP2 는 독립 실행형 서버로 작동하고 EAP3EAP4 는 2-노드 클러스터로 작동합니다. 두 개의 웹 애플리케이션( sampleAppAsampleAppB )이 4개의 JBoss EAP 인스턴스 각각에 배포되었습니다.

scenario4

5.4.1. 보안

JBoss EAP는 보안,undertowinfinispan 하위 시스템의 조합을 사용하여 웹 애플리케이션과 함께 클러스터되고 비클러스터형 SSO를 지원합니다. 보안 하위 시스템은 인증 및 권한 부여를 수행할 수 있는 보안 도메인을 제공하지만 infinispan and undertow 하위 시스템은 JBoss EAP 인스턴스 또는 JBoss EAP 클러스터 전체에서 SSO 정보를 캐싱하고 배포하는 데 도움이 됩니다. 4개의 EAP 인스턴스에는 IdentityLoginModule 을 사용하도록 구성된 보안 도메인인 sso-domain 이 있습니다.sampleAppAsampleAppB 는 the sso-domain 보안 도메인을 사용하여 /secure/* 경로를 보안하고 해당 경로에 액세스하기 위해 샘플 의 역할이 필요하도록 구성되었습니다. 다음 인증 정보는 the sso-domain 로그인 모듈에 구성되어 있습니다.

표 5.5. SSO-domain 사용자

사용자 이름암호역할

Jane

samplePass

샘플

또한 4개의 JBoss EAP 인스턴스는 모두 standalone-full-ha 또는 full-ha 프로필로 시작하도록 구성되었으며, 이 프로필은 infinispan 하위 시스템과 이 시나리오에서 SSO를 활성화하는 데 필요한 기타 기능을 추가합니다. cache-container 및 SSO replicad-cache도 추가되었으며, the undertow 하위 시스템은 둘 다 사용하도록 구성되었습니다. EAP1EAP2 는 비클러스터형 SSO에 대한 해당 하위 시스템을 구성하고 EAP3 및 EAP 4 를 포함하는 클러스터는 클러스터된 SSO를 사용하도록 구성되었습니다.

애플리케이션 클러스터링 및. 클러스터형 SSO

클러스터형 웹 애플리케이션과 클러스터된 SSO 간에는 뚜렷한 차이점이 있습니다. 클러스터된 웹 애플리케이션은 해당 애플리케이션 호스팅의 부하를 분산하기 위해 클러스터의 노드에 배포되는 웹 애플리케이션입니다. 배포 가능으로 표시된 클러스터된 애플리케이션에서는 모든 새 세션과 기존 세션에 대한 변경 사항이 클러스터의 다른 구성원에게 복제됩니다. 클러스터된 SSO를 사용하면 애플리케이션이 클러스터되었는지 여부에 관계없이 보안 컨텍스트 및 ID 정보를 복제할 수 있습니다. 이러한 기술을 함께 사용할 수도 있지만 상호 배타적이며 독립적으로 사용할 수 있습니다.

5.4.2. 작동 방식

시작 시 JBoss EAP는 핵심 서비스를 로드하고 SSO 정보를 위해so -domain 및 관련 캐싱을 관리하는 보안 , 언플레이스 및 infinispan 하위 시스템을 시작합니다. sampleAppA.warsampleAppB.war 는 모두 4개의 JBoss EAP 인스턴스에 로드되며, 각각 인증 및 권한 부여를 위해 for sso-domain 을 찾습니다.

Jane이 EAP1/sampleAppA/secure/hello.html 에 액세스하려고 하면 인증 메시지가 표시됩니다. 올바른 정보를 제공한 후 EAP1/sampleAppA/secure/hello.html 을 볼 수 있습니다. Jane의 세션은 the undertowinfinispan 하위 시스템에서 사용하는 SSO 캐시에 추가됩니다. EAP1/sampleAppB/secure/hello.html 에 액세스하려고 하면 다시 인증하라는 메시지가 표시되지 않습니다. EAP1 에서 실행 중인 sampleAppBinfinispan 하위 시스템과 함께 the undertow 하위 시스템 캐시를 사용하여 세션을 찾아 이미 인증되었기 때문에 액세스 권한을 부여합니다. Jane이 EAP2/sampleAppA/secure/hello.html 또는 EAP2/sampleAppB/secure/hello.html 에 액세스하려고 하면 EAP1 및 EAP 2 에서 캐시를 공유하지 않기 때문에 다시 인증하라는 메시지가 표시됩니다.

Jane이 EAP3/sampleAppA/secure/hello.html 에 액세스하려고 하면 인증하라는 메시지가 표시되며 세션이 SSO 캐시에 저장됩니다. 이러한 캐시는 전체 클러스터에 저장되므로 Jane가 EAP3/sampleAppB/secure/hello.html,EAP4/sampleAppA/secure/hello.html 또는 EAP4/sampleAppB/secure/hello.html 에 로그인하려고 하면 다시 인증할 필요가 없습니다. EAP3 또는 EAP4 가 다시 시작되면 다른 JBoss EAP 인스턴스와 클러스터가 계속 실행되어 캐시를 유지하기 때문에 Jane의 SSO 정보는 캐시에 남아 있습니다. 이와 유사하게 Jane의 세션이 무효화되면 캐시 전체에서 리플을 가져와서 클러스터에서 액세스하려는 애플리케이션이나 서버에 관계없이 다시 인증해야 합니다.