2.7. 코어 관리 인증

코어 관리 인증은 ManagementRealm 을 사용하여 핵심 관리 기능에 대한 관리 인터페이스 HTTP 및 네이티브 보안을 담당합니다. 코어 관리에 구축되며 기본적으로 코어 서비스로 활성화 및 구성됩니다. 관리 인터페이스 보안만 담당합니다.

2.7.1. 보안 영역

보안 영역은 자카르타 엔터프라이즈 빈, 웹 애플리케이션 및 관리 인터페이스에서 사용자를 인증할 때 사용할 수 있는 사용자 이름, 암호 및 그룹 멤버십 정보의 ID 저장소입니다. 초기에 JBoss EAP는 기본적으로 두 개의 보안 영역으로 사전 구성되어 있습니다. ManagementRealmApplicationRealm. 두 보안 영역 모두 파일 시스템을 사용하여 사용자와 암호, 사용자 및 그룹 멤버십 정보 간의 매핑을 저장합니다. 둘 다 인증할 때 기본적으로 다이제스트 메커니즘을 사용합니다.

다이제스트 메커니즘은 사용자 이름 및 암호 매핑 속성 파일에 저장된 정보를 포함하여 다양한 정보로 구성된 일회성 해시를 사용하여 사용자를 인증하는 인증 메커니즘입니다. 이를 통해 JBoss EAP는 네트워크를 통해 일반 텍스트로 암호를 전송하지 않고 사용자를 인증할 수 있습니다.

JBoss EAP 설치에는 관리자가 두 영역에 모두 사용자를 추가할 수 있는 스크립트가 포함되어 있습니다. 이러한 방식으로 사용자를 추가하면 사용자 이름과 해시된 암호가 해당 사용자 이름 및 암호 속성 파일에 저장됩니다. 사용자가 인증을 시도하면 JBoss EAP에서 일회성 사용 번호인 nonce를 클라이언트에 보냅니다. 그런 다음 클라이언트는 사용자 이름, 암호, nonce 및 기타 몇 가지 필드를 사용하여 단방향 해시를 생성하고 사용자 이름, nonce 및 단방향 해시를 JBoss EAP로 전송합니다. JBoss EAP는 미리 지정된 암호를 찾아 제공된 사용자 이름, nonce 및 기타 몇 개 필드와 함께 사용하여 동일한 방식으로 다른 단방향 해시를 생성합니다. 올바른 암호를 포함하여 동일한 정보를 모두 양쪽에서 사용하면 해시가 일치하고 사용자가 인증됩니다.

보안 영역은 기본적으로 다이제스트 메커니즘을 사용하지만 다른 인증 메커니즘을 사용하도록 재구성될 수 있습니다. 시작 시 관리 인터페이스는 ManagementRealm 에서 구성된 인증 메커니즘에 따라 활성화되는 인증 메커니즘을 결정합니다.

보안 영역은 권한 부여 결정에 관여하지 않지만, 나중에 권한 결정을 내리는 데 사용할 수 있는 사용자의 그룹 멤버십 정보를 로드하도록 구성할 수 있습니다. 사용자를 인증하고 나면 사용자 이름을 기반으로 그룹 멤버십 정보를 로드하는 두 번째 단계가 발생합니다.

기본적으로 ManagementRealm 은 관리 인터페이스에 대한 인증 및 권한 부여 중에 사용됩니다. The ApplicationRealm 은 웹 애플리케이션에서 사용할 수 있는 기본 영역이며 사용자를 인증하고 인증할 때 사용할 수 있는 Jakarta Enterprise Beans입니다.

2.7.2. 기본 보안

기본적으로 핵심 관리 인증은 기본적으로 ManagementRealm 보안 영역을 사용하여 구성되는 로컬 클라이언트 및 원격 클라이언트의 두 가지 형식으로 각 관리 인터페이스(HTTP 및 네이티브)를 보호합니다. 이러한 기본값은 다르게 구성되거나 완전히 교체될 수 있습니다.

참고

기본적으로 관리 인터페이스는 역할을 사용하지 않는 간단한 액세스 제어를 사용하도록 구성됩니다. 따라서 기본적으로 모든 사용자는 단순한 액세스 제어를 사용할 때 SuperUser 역할과 동일한 권한을 갖습니다. 이 역할은 기본적으로 모든 항목에 액세스할 수 있습니다.

2.7.2.1. 네이티브 인터페이스를 사용한 로컬 및 원격 클라이언트 인증

기본 인터페이스 또는 관리 CLI는 실행 중인 JBoss EAP 인스턴스와 동일한 호스트에서 로컬로 호출하거나 다른 시스템에서 원격으로 호출할 수 있습니다. 기본 인터페이스를 사용하여 연결을 시도할 때 JBoss EAP는 클라이언트가 사용 가능한 SASL 인증 메커니즘(예: 로컬 jboss 사용자, BASIC 등) 목록을 클라이언트에 제공합니다. 클라이언트는 원하는 인증 메커니즘을 선택하고 JBoss EAP 인스턴스 인증을 시도합니다. 오류가 발생하면 나머지 메커니즘으로 다시 시도하거나 연결 시도를 중지합니다. 로컬 클라이언트에는 로컬 jboss 사용자 인증 메커니즘을 사용하는 옵션이 있습니다. 이 보안 메커니즘은 클라이언트의 로컬 파일 시스템에 액세스하는 기능을 기반으로 합니다. 로그인하려는 사용자가 실제로 JBoss EAP 인스턴스와 동일한 호스트의 로컬 파일 시스템에 액세스할 수 있는지 확인합니다.

이 인증 메커니즘은 4단계에서 수행됩니다.

  1. 클라이언트는 로컬 jboss 사용자를 사용하여 인증 요청을 포함하는 메시지를 서버로 전송합니다.
  2. 서버는 일회성 토큰을 생성하여 고유한 파일에 쓰고 전체 파일 경로를 사용하여 클라이언트에 메시지를 전송합니다.
  3. 클라이언트는 파일에서 토큰을 읽고 서버로 전송하여 파일 시스템에 대한 로컬 액세스 권한이 있는지 확인합니다.
  4. 서버에서 토큰을 확인한 다음 파일을 삭제합니다.

이러한 형태의 인증은 파일 시스템에 대한 물리적 액세스를 달성하는 경우 다른 보안 메커니즘이 적용되지 않는다는 원칙을 기반으로 합니다. 이유는 사용자에게 로컬 파일 시스템 액세스 권한이 있는 경우 사용자가 새 사용자를 만들 수 있는 충분한 액세스 권한이 있거나, 그렇지 않으면 다른 보안 메커니즘을 방해하기 때문입니다. 로컬 사용자가 사용자 이름 또는 암호 인증 없이 관리 CLI에 액세스할 수 있으므로 이를 자동 인증이라고 합니다.

이 기능은 편의를 위해 활성화되며 추가 인증 없이도 관리 CLI 스크립트를 실행하는 로컬 사용자를 지원합니다. 로컬 구성에 대한 액세스 권한은 일반적으로 사용자에게 고유한 사용자 세부 정보를 추가하거나 보안 검사를 비활성화하는 기능을 제공한다는 점에서 유용한 기능으로 간주됩니다.

네이티브 인터페이스는 다른 서버 또는 동일한 서버에서도 원격 클라이언트로 액세스할 수 있습니다. 네이티브 인터페이스에 원격 클라이언트로 액세스하는 경우 클라이언트는 로컬 jboss 사용자를 사용하여 인증할 수 없으며, DIGEST와 같은 다른 인증 메커니즘을 사용해야 합니다. 로컬 클라이언트가 로컬 jboss 사용자를 사용하여 인증에 실패하면 자동으로 대체되며 다른 메커니즘을 원격 클라이언트로 사용합니다.

참고

네이티브 인터페이스와 달리 HTTP 인터페이스를 사용하여 다른 서버 또는 동일한 서버에서 관리 CLI를 호출할 수 있습니다. CLI 또는 그 외의 모든 HTTP 연결은 원격로 간주되며 로컬 인터페이스 인증에서 다루지 않습니다.

중요

기본적으로 네이티브 인터페이스는 구성되지 않으며 모든 관리 CLI 트래픽은 HTTP 인터페이스에서 처리합니다. JBoss EAP 7은 HTTP 업그레이드를 지원합니다. 이 경우 클라이언트가 HTTP를 통해 초기 연결을 만들 수 있지만 해당 연결을 다른 프로토콜로 업그레이드하기 위한 요청을 보냅니다. 관리 CLI의 경우 HTTP에 대한 초기 요청이 HTTP 인터페이스에 대한 초기 요청이 생성되지만 연결이 네이티브 프로토콜로 업그레이드됩니다. 이 연결은 여전히 HTTP 인터페이스를 통해 처리되지만 HTTP가 아닌 통신에 네이티브 프로토콜을 사용합니다. 또는 필요한 경우 기본 인터페이스를 활성화하고 사용할 수 있습니다.

2.7.2.2. HTTP 인터페이스를 사용한 로컬 및 원격 클라이언트 인증

HTTP 인터페이스는 실행 중인 JBoss EAP 인스턴스와 동일한 호스트의 클라이언트가 로컬로 호출하거나 다른 시스템의 클라이언트에서 원격으로 호출할 수 있습니다. 로컬 및 원격 클라이언트가 HTTP 인터페이스에 액세스할 수 있도록 허용하지만 HTTP 인터페이스에 액세스하는 모든 클라이언트는 원격 연결로 간주됩니다.

클라이언트가 HTTP 관리 인터페이스에 연결하려고 하면 JBoss EAP는 401 Unauthorized 상태 코드와 지원되는 인증 메커니즘을 나열하는 일련의 헤더(예: Digest, GSSAPI 등)를 사용하여 HTTP 응답을 다시 보냅니다. Digest의 헤더에는 JBoss EAP에서 생성한 nonce도 포함되어 있습니다. 클라이언트는 헤더를 살펴보고 사용할 인증 방법을 선택하고 적절한 응답을 보냅니다. 클라이언트가 Digest를 선택하는 경우 사용자에게 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다. 클라이언트는 사용자 이름 및 암호, nonce 및 기타 몇 가지 정보와 같은 제공된 필드를 사용하여 단방향 해시를 생성합니다. 그런 다음 클라이언트는 단방향 해시, 사용자 이름, nonce를 응답으로 JBoss EAP로 다시 전송합니다. JBoss EAP는 이러한 정보를 가져와서 또 다른 단방향 해시를 생성하고, 이 정보를 비교한 다음 결과를 기반으로 사용자를 인증합니다.

2.7.3. 고급 보안

관리 인터페이스의 기본 구성뿐만 아니라 인증 및 권한 부여 메커니즘을 변경하여 보안 방식에 영향을 주는 여러 가지 방법이 있습니다.

2.7.3.1. 관리 인터페이스 업데이트

인증 및 권한 부여 메커니즘을 수정하는 것 외에도 JBoss EAP를 사용하면 관리자가 관리 인터페이스 자체의 구성을 업데이트할 수 있습니다. 다양한 옵션이 있습니다.

일방향 SSL/TLS를 사용하도록 관리 인터페이스 구성
일방향 SSL/TLS를 사용하는 통신 전용 JBoss EAP 관리 콘솔을 구성하면 향상된 보안이 제공됩니다. 클라이언트와 관리 콘솔 간의 모든 네트워크 트래픽이 암호화되므로 중간자 공격과 같은 보안 공격 위험이 줄어듭니다. JBoss EAP 인스턴스를 관리하는 모든 사용자는 권한이 없는 사용자보다 해당 인스턴스에 대해 더 많은 권한이 있으며 일방향 SSL/TLS를 사용하면 인스턴스의 무결성과 가용성을 보호할 수 있습니다. JBoss EAP를 사용하여 일방향 SSL/TLS를 구성할 때 신뢰할 수 있는 체인을 제공하므로 인증 서명된 인증서가 자체 서명된 인증서보다 선호됩니다. 자체 서명 인증서는 허용되지만 권장되지 않습니다.
양방향 SSL/TLS 사용
클라이언트 인증이라고도 하는 양방향 SSL/TLS 인증은 SSL/TLS 인증서를 사용하여 클라이언트와 서버를 인증합니다. 이렇게 하면 서버가 서버에 있다는 것은 물론 클라이언트가 말하는 내용이기도 합니다.
새 보안 영역 업데이트 또는 생성
기본 보안 영역은 새 보안 영역으로 업데이트하거나 바꿀 수 있습니다.

2.7.3.2. 아웃바운드 연결 추가

일부 보안 영역은 LDAP 서버와 같은 외부 인터페이스에 연결됩니다. 아웃바운드 연결은 이 연결을 만드는 방법을 정의합니다. 사전 정의된 연결 유형인 ldap-connection 은 LDAP 서버에 연결하고 자격 증명을 확인하는 필수 및 선택적 속성을 모두 설정합니다.

2.7.3.3. 관리 인터페이스에 RBAC 추가

기본적으로 RBAC 시스템은 비활성화되어 있습니다. provider 특성을 단순 에서 rbac 로 변경하여 활성화합니다. 이 작업은 관리 CLI를 사용하여 수행할 수 있습니다. 실행 중인 서버에서 RBAC를 비활성화하거나 활성화하면 적용되기 전에 서버 구성을 다시 로드해야 합니다.

관리 인터페이스에 대해 RBAC를 활성화하면 사용자에게 할당된 역할은 액세스 권한이 있는 리소스와 리소스의 특성을 사용하여 수행할 수 있는 작업을 결정합니다. Administrator 또는 SuperUser 역할의 사용자만 액세스 제어 시스템을 보고 변경할 수 있습니다.

주의

사용자와 역할이 올바르게 구성되지 않고 RBAC를 활성화하면 관리자가 관리 인터페이스에 로그인할 수 없습니다.

관리 콘솔에 대한 RBAC의 영향

관리 콘솔에서 일부 제어 및 보기가 비활성화되어 사용자가 할당한 역할의 권한에 따라 회색으로 표시되거나 전혀 표시되지 않습니다.

사용자가 리소스 속성에 대한 읽기 권한이 없는 경우 해당 속성은 콘솔에 비어 있습니다. 예를 들어 대부분의 역할은 데이터 소스의 사용자 이름 및 암호 필드를 읽을 수 없습니다.

사용자에게 읽기 권한이 있지만 리소스 속성에 대한 쓰기 권한이 없는 경우 해당 속성은 리소스의 편집 양식에서 비활성화됩니다. 사용자에게 리소스에 대한 쓰기 권한이 없는 경우 리소스에 대한 편집 버튼이 표시되지 않습니다.

사용자에게 리소스 또는 속성에 액세스할 수 있는 권한이 없습니다. 즉, 해당 역할에 대해 주소 지정이 불가능한 경우 해당 사용자의 콘솔에 표시되지 않습니다. 그 예는 기본적으로 몇 가지 역할에만 표시되는 액세스 제어 시스템 자체입니다.

관리 콘솔은 다음과 같은 일반적인 RBAC 작업에 대한 인터페이스도 제공합니다.

  • 각 사용자에게 할당되거나 제외되는 역할을 보고 구성합니다.
  • 각 그룹에 할당되거나 제외되는 역할을 보고 구성합니다.
  • 역할별로 그룹 및 사용자 멤버십을 확인합니다.
  • 역할당 기본 멤버십을 구성합니다.
  • 범위가 지정된 역할을 생성합니다.
참고

현재 관리 콘솔에서 제한 조건을 구성할 수 없습니다.

관리 CLI 또는 관리 API에서 RBAC의 영향

관리 CLI 또는 관리 API 사용자는 RBAC가 활성화되면 약간 다른 동작이 발생합니다.

읽을 수 없는 리소스 및 속성은 결과에서 필터링됩니다. 필터링된 항목이 역할에서 처리할 수 있는 경우 해당 이름은 결과의 response -headers 섹션에 filtered- attributes 로 나열됩니다. 역할에서 리소스 또는 특성을 처리할 수 없는 경우 나열되지 않습니다.

주소 지정 가능하지 않은 리소스에 액세스하려고 하면 Resource Not Found 오류가 발생합니다.

사용자가 처리할 수 있지만 적절한 쓰기 또는 읽기 권한이 없는 리소스를 작성하거나 읽으려는 경우 Permission Denied 오류가 반환됩니다.

관리 CLI는 관리 콘솔과 동일한 모든 RBAC 작업과 몇 가지 추가 작업을 수행할 수 있습니다.

  • RBAC 활성화 및 비활성화
  • 권한 조합 정책 변경
  • 애플리케이션 리소스 및 리소스 민감도 제한 조건 구성

자카르타 관리 빈에 대한 RBAC의 효과

역할 기반 액세스 제어는 다음 세 가지 방법으로 자카르타 관리에 적용됩니다.

  1. JBoss EAP의 관리 API는 Jakarta Management가 관리하는 빈으로 노출됩니다. 이러한 관리 빈은 코어 mbean이라고 하며 이에 대한 액세스는 기본 관리 API 자체와 정확히 동일하게 제어 및 필터링됩니다.
  2. jmx 하위 시스템은 민감한 쓰기 권한으로 구성됩니다. 즉, AdministratorSuperUser 역할의 사용자만 해당 하위 시스템을 변경할 수 있습니다. 감사자 역할의 사용자는 이 하위 시스템 구성을 읽을 수도 있습니다.
  3. 배포된 애플리케이션 및 서비스 또는 비코어 MBean에서 등록한 빈은 기본적으로 모든 관리 사용자가 액세스할 수 있지만 유지 관리자,Operator, 관리자 SuperUser 역할의 사용자만 쓸 수 있습니다.

RBAC 인증

RBAC는 JBoss EAP에 포함된 표준 인증 공급자와 함께 작동합니다.

사용자 이름/암호
사용자는 로컬 속성 파일 또는 LDAP를 사용할 수 있는 ManagementRealm 의 설정에 따라 확인되는 사용자 이름 및 암호 조합을 사용하여 인증됩니다.
클라이언트 인증서
신뢰 저장소는 클라이언트 인증서에 대한 인증 정보를 제공합니다.
로컬 jboss 사용자
jboss-cli 스크립트는 서버가 동일한 시스템에서 실행 중인 경우 로컬 jboss 사용자로 자동으로 인증됩니다. 기본적으로 로컬 jboss 사용자는 SuperUser 그룹의 멤버입니다.

사용되는 공급업체에 관계없이 JBoss EAP는 사용자에게 역할을 할당합니다. ManagementRealm 또는 LDAP 서버로 인증할 때 해당 시스템은 사용자 그룹 정보를 제공할 수 있습니다. 이 정보는 JBoss EAP에서 사용자에게 역할을 할당하는 데 사용할 수도 있습니다.

2.7.3.4. 관리 인터페이스로 LDAP 사용

JBoss EAP에는 LDAP 서버를 웹 및 Jakarta Enterprise Beans 애플리케이션의 인증 및 권한 부여 권한으로 사용할 수 있는 여러 인증 및 권한 부여 모듈이 포함되어 있습니다.

관리 콘솔, 관리 CLI 또는 관리 API의 인증 소스로 LDAP 디렉터리 서버를 사용하려면 다음 작업을 수행해야 합니다.

  1. LDAP 서버에 대한 아웃바운드 연결을 만듭니다.
  2. LDAP 사용 보안 영역을 생성하거나 LDAP를 사용하도록 기존 보안 영역을 업데이트합니다.
  3. 관리 인터페이스에서 새 보안 영역을 참조합니다.

LDAP 인증자는 먼저 원격 디렉터리 서버에 대한 연결을 설정하여 작동합니다. 그런 다음 사용자가 인증 시스템에 전달한 사용자 이름을 사용하여 LDAP 레코드의 정규화된 고유 이름(DN)을 찾습니다. 사용자의 DN을 사용자가 제공한 자격 증명 및 암호로 사용하여 LDAP 서버에 대한 새 연결을 설정합니다. LDAP 서버에 대한 이 인증이 성공하면 DN이 유효한 것으로 확인됩니다.

LDAP 사용 보안 영역을 만들고 나면 관리 인터페이스에서 참조할 수 있습니다. 관리 인터페이스는 인증에 보안 영역을 사용합니다. 관리 인터페이스 및 관리 CLI에서 인증에 양방향 SSL/TLS를 사용하여 LDAP 서버에 대한 아웃바운드 연결을 사용하도록 JBoss EAP를 구성할 수도 있습니다.

2.7.3.5. 자카르타 인증 및 관리 인터페이스

Jakarta Authentication을 사용하여 관리 인터페이스를 보호할 수 있습니다. 관리 인터페이스에 Jakarta Authentication을 사용하는 경우 보안 도메인을 사용하도록 보안 영역을 구성해야 합니다. 이로 인해 핵심 서비스와 하위 시스템 사이에 종속성이 발생합니다. SSL/TLS는 관리 인터페이스를 보호하기 위해 자카르타 인증을 사용하지 않아도 되지만 관리자는 SSL/TLS를 사용하여 보안되지 않은 방식으로 중요한 정보를 전송하지 않도록 하는 것이 좋습니다.

참고

JBoss EAP 인스턴스가 관리자 전용 모드에서 실행 중인 경우 Jakarta Authentication을 사용하여 관리 인터페이스를 보호하는 것은 지원되지 않습니다. 관리자 전용 모드에 대한 자세한 내용은 JBoss EAP 구성 가이드의 관리 전용 모드에서 JBoss EAP 실행을 참조하십시오.