4.3. 새 ID 저장소로 관리 인터페이스 및 애플리케이션 보안

이 시나리오는 Elytron의 새 ID 저장소로 JBoss EAP의 관리 인터페이스와 애플리케이션을 보호하는 방법을 보여줍니다. sampleApp2.war 애플리케이션은 JBoss EAP에 배포되며 basicExampleDomain 을 사용하도록 구성됩니다.

4.3.1. 보안

JBoss EAP는 관리 인터페이스와 ManagementRealmApplicationRealm 이외의 ID 저장소를 사용하는 애플리케이션 모두를 보호하는 기능을 제공합니다. Elytron에서는 동일한 ID 저장소를 사용하여 애플리케이션과 관리 인터페이스를 보호할 수 있지만 각각에 대해 별도의 ID 저장소를 설정할 수도 있습니다. ID 저장소는 보안 영역(예: filesystem-realm,jdbc-realm 또는 ldap-realm )으로 표시됩니다. 이 예제의 목적을 위해 exampleRealm 이라는 filesystem-realm 이 생성되었습니다. exampleDomain 이라는 보안 도메인도 생성되어 exampleRealm 을 ID 저장소, groups-to-roles 역할 매퍼를 사용하여 exampleRealm 에서 제공하는 그룹 정보를 역할로, default-permission-mapper 를 사용하여 권한을 매핑할 수 있습니다.

HTTP 인증의 경우 exampleHttpAuthFactory 라는 http-authentication-factory 가 생성되었습니다. 인증에 글로벌 HTTP 서버 팩토리 메커니즘과 exampleDomain 을 사용합니다. 또한 두 가지 메커니즘 구성이 있습니다. basicExampleDomain으로 노출된 BASIC 인증 방법과 다이제스트 ExampleDomain 으로 노출된 DIGEST 인증 방법을 사용하는 방법. exampleHttpAuthFactory 를 사용하도록 HTTP 관리 인터페이스가 구성되었습니다. 또한 The undertow 하위 시스템은 exampleHttpAuthFactory 를 사용하는 새 application-security-domain 으로 구성되었습니다. 애플리케이션 sampleApp2.warBASIC 인증과 함께 basicExampleDomain 을 사용하도록 구성되어 있습니다.

exampleSaslAuthFactory 라는 SASL 인증 a sasl-authentication-factory 가 생성되었습니다. 인증에 구성된 SASL 서버 팩토리와 exampleDomain 을 사용합니다. 또한 다이제스트 MD5ExampleDomain으로 노출되는 DIGEST- MD5 인증 메커니즘이 있습니다. 관리 인터페이스의 SASL 구성은 exampleSaslAuthFactory 를 사용하도록 설정되었습니다.

4.3.2. 작동 방식

다음 사용자가 exampleRealm 에 추가되었습니다.

표 4.2. 예제Realm 사용자

사용자 이름암호역할

Vincent

samplePass

샘플

Issac

samplePass

게스트

시작 시 JBoss EAP는 핵심 서비스를 로드하고 undertowelytron 하위 시스템을 시작합니다. 이는 관리 인터페이스를 보호하고 JBoss EAP에 배포된 애플리케이션에 대해 basic ExampleDomain, digestExampleDomain 및 digestMD5ExampleDomain 을 노출합니다.

sampleApp2.war 가 로드되면 basicExampleDomain 을 찾아 보안 URL에 대한 인증 및 권한 부여를 제공합니다. /hello.html 및 /secure/hello.html 이라는 두 개의 HTML 파일이 있으며, BASIC 인증을 사용하여 /secure/* 경로를 보호합니다. 보안 URL에 액세스하려면 샘플 역할이 필요합니다.

사용자가 인증하면 JBoss EAP에 액세스하는 방법에 따라 특정 메커니즘을 사용하여 자격 증명을 제출합니다. 예를 들어 사용자가 DIGEST 인증과 함께 HTTP를 사용하여 관리 콘솔에 액세스하려고 하면 다이제스트ExampleDomain 으로 노출된 DIGEST 인증 방법을 사용하여 인증됩니다. BASIC 인증으로 HTTP를 사용하여 sampleApp2.war 에 액세스하려는 경우 basicExampleDomain 으로 노출되는 BASIC 인증 방법을 사용하여 인증됩니다. DIGEST 인증과 함께 SASL을 사용하여 관리 CLI에 액세스하려고 하면 다이제스트MD5 ExampleDomain으로 노출된 DIGEST-MD5를 사용하여 인증됩니다. HTTP 인증 메커니즘은 exampleHttpAuthFactory 를 사용하며 SASL 인증 메커니즘은 exampleSaslAuthFactory 를 사용합니다. 두 인증 팩토리 모두 exampleDomain 을 사용하여 인증 및 역할 매핑을 처리합니다.

Vincent 또는 Issac에서 관리 인터페이스에 액세스하려고 하면 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다. 성공적으로 로그인한 후에는 각각 관리 작업을 수행할 수 있습니다.

Vincent 또는 Issac이 /hello.html 을 요청할 때 인증 없이 페이지를 볼 수 있습니다. Vincent 또는 Issac에서 /secure/hello.html 을 요청하려고 하면 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다. 로그인 후 Vincent는 샘플 역할이 있으므로 /secure/hello.html 을 볼 수 있지만 Issac은 게스트 역할을 하므로 /secure/hello.html 을 볼 수 없습니다. 다른 모든 사용자는 로그인하지 않고 /hello.html 에 액세스할 수 있지만 Vincent와 Issac이 exampleRealm 의 유일한 사용자이므로 /secure/hello.html 에 액세스할 수 없습니다.