4.3. 새 ID 저장소로 관리 인터페이스 및 애플리케이션 보안
이 시나리오는 Elytron의 새 ID 저장소로 JBoss EAP의 관리 인터페이스와 애플리케이션을 보호하는 방법을 보여줍니다. sampleApp2.war
애플리케이션은 JBoss EAP에 배포되며 basicExampleDomain
을 사용하도록 구성됩니다.
4.3.1. 보안
JBoss EAP는 관리 인터페이스와 ManagementRealm
및 ApplicationRealm
이외의 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.war
는 BASIC
인증과 함께 basicExampleDomain
을 사용하도록 구성되어 있습니다.
exampleSaslAuthFactory
라는 SASL 인증 a sasl-authentication-factory
가 생성되었습니다. 인증에 구성된
SASL 서버 팩토리와 exampleDomain
을 사용합니다. 또한 다이제스트
인증 메커니즘이 있습니다. 관리 인터페이스의 SASL 구성은 MD5ExampleDomain으로 노출되는 DIGEST-
MD5exampleSaslAuthFactory
를 사용하도록 설정되었습니다.
4.3.2. 작동 방식
다음 사용자가 exampleRealm
에 추가되었습니다.
사용자 이름 | 암호 | 역할 |
---|---|---|
Vincent | samplePass | 샘플 |
Issac | samplePass | 게스트 |
시작 시 JBoss EAP는 핵심 서비스를 로드하고 undertow
및 elytron
하위 시스템을 시작합니다. 이는 관리 인터페이스를 보호하고 JBoss EAP에 배포된 애플리케이션에 대해 basic
ExampleDomain
, digestExampleDomain 및 digestMD5ExampleDomain
을 노출합니다.
sampleApp2.war
가 로드되면 basicExampleDomain
을 찾아 보안 URL에 대한 인증 및 권한 부여를 제공합니다. /hello.html 및
이라는 두 개의 HTML 파일이 있으며, BASIC 인증을 사용하여 /secure/hello.html
/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
에 액세스할 수 없습니다.