19장. 클라이언트 구성

19.1. wildfly-config.xml 파일을 사용한 클라이언트 설정

JBoss EAP 7.1은 모든 클라이언트 구성을 하나의 구성 파일로 통합하기 위한 와일드플ly -config.xml 파일을 도입했습니다.

다음 표는 JBoss EAP에서 the wildfly-config.xml 파일을 사용하여 수행할 수 있는 클라이언트 및 구성 유형과 각 구성의 참조 스키마 링크에 대한 링크를 설명합니다.

클라이언트 설정스키마 위치/구성 정보

인증 클라이언트

스키마 참조는 EAP_HOME/docs/schema/elytron-client-1_2.xsd 에서 제품 설치에 제공됩니다.

스키마는 http://www.jboss.org/schema/jbossas/elytron-client-1_2.xsd 에도 게시되어 있습니다.

자세한 내용 및 구성 예는 the wildfly-config.xml 파일을 사용하여 클라이언트 인증 구성을 참조하십시오.

자세한 내용은 JBoss EAP에 대한 ID 관리 구성 방법의 Elytron Client로 클라이언트 인증 구성에서 확인할 수 있습니다.

Jakarta Enterprise Beans 클라이언트

스키마 참조는 EAP_HOME/docs/schema/wildfly-client-ejb_3_0.xsd 에서 제품 설치에 제공됩니다.

스키마는 http://www.jboss.org/schema/jbossas/wildfly-client-ejb_3_0.xsd 에도 게시되어 있습니다.

자세한 내용 및 구성에 대한 자세한 내용은 Jakarta Enterprise Beans Client Configuration Using the wildfly-config.xml 파일을 참조하십시오.

또 다른 간단한 예는 JBoss EAP 의 마이그레이션 가이드의 Jakarta Enterprise Bean Client에서 Elytron 으로 마이그레이션 섹션에 있습니다.

HTTP 클라이언트

스키마 참조는 EAP_HOME/docs/schema/wildfly-http-client_1_0.xsd 에서 제품 설치에 제공됩니다.

스키마는 http://www.jboss.org/schema/jbossas/wildfly-http-client_1_0.xsd 에도 게시되어 있습니다.

참고

이 기능은 기술 프리뷰로 만 제공됩니다.

자세한 내용 및 구성 예는 HTTP 클라이언트 구성을 참조하십시오 .

클라이언트 원격화

스키마 참조는 EAP_HOME/docs/schema/jboss-remoting_5_0.xsd 에서 제품 설치에 제공됩니다.

스키마는 http://www.jboss.org/schema/jbossas/jboss-remoting_5_0.xsd 에도 게시되어 있습니다.

자세한 내용 및 구성에 대해서는 클라이언트 구성 제거를 참조하십시오.

XNIO 작업자 클라이언트

스키마 참조는 EAP_HOME/docs/schema/xnio_3_5.xsd 에서 제품 설치에 제공됩니다.

스키마는 http://www.jboss.org/schema/jbossas/xnio_3_5.xsd 에도 게시되어 있습니다.

자세한 내용 및 구성에 대한 자세한 내용은 기본 XNIO 작업자 구성에서 the wildfly-config.xml 파일을 참조하십시오.

19.1.1. wildfly-config.xml 파일을 사용한 클라이언트 인증 구성

urn:elytron: client:1.2 네임스페이스에 있는 authentication- client 요소를 사용하여 wildfly-config.xml 파일을 사용하여 클라이언트 인증 정보를 구성할 수 있습니다. 이 섹션에서는 이 요소를 사용하여 클라이언트 인증을 구성하는 방법에 대해 설명합니다.

인증-클라이언트 요소 및 속성

authentication-client 요소에는 하위 요소와 함께 다음 최상위 하위 요소를 선택적으로 포함할 수 있습니다.

credential-stores

이 선택적 요소는 구성의 다른 위치에서 참조되는 인증 정보 저장소를 구성 내에 자격 증명을 포함하는 대안으로 정의합니다.

원하는 수의 자격 증명 저장소 요소를 포함할 수 있습니다.

예: credentials-stores 구성

<configuration>
  <authentication-client xmlns="urn:elytron:client:1.2">
    <credential-stores>
      <credential-store name="..." type="..." provider="..." >
        <attributes>
          <attribute name="..." value="..." />
        </attributes>
        <protection-parameter-credentials>...</protection-parameter-credentials>
      </credential-store>
    </credential-stores>
  </authentication-client>
</configuration>

credential-store

이 요소는 구성의 다른 위치에서 참조되는 자격 증명 저장소를 정의합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

name

자격 증명 저장소의 이름입니다. 이 속성은 필수입니다.

type

자격 증명 저장소 유형입니다. 이 속성은 선택 사항입니다.

공급자

자격 증명 저장소를 로드하는 데 사용할 java.security.Provider 의 이름입니다. 이 속성은 선택 사항입니다.

다음 하위 요소 중 하나와 하나만 포함할 수 있습니다.

속성

이 요소는 자격 증명 저장소를 초기화하는 데 사용되는 구성 속성을 정의하며 구성에 필요한 만큼 반복될 수 있습니다.

예: 특성 구성

<attributes>
  <attribute name="..." value="..." />
</attributes>

protection-parameter-credentials

이 요소에는 자격 증명 저장소를 초기화할 때 사용할 보호 매개 변수로 조합할 하나 이상의 자격 증명이 포함되어 있습니다.

인증 정보 저장소 구현에 따라 하나 이상의 다음 하위 요소를 포함할 수 있습니다.

예: protection-parameter-credentials 구성

<protection-parameter-credentials>
  <key-store-reference>...</key-store-reference>
  <credential-store-reference store="..." alias="..." clear-text="..." />
  <clear-password password="..." />
  <key-pair public-key-pem="..." private-key-pem="..." />
  <certificate private-key-pem="..." pem="..." />
  <public-key-pem>...</public-key-pem>
  <bearer-token value="..." />
  <oauth2-bearer-token token-endpoint-uri="...">...</oauth2-bearer-token>
</protection-parameter-credentials>

key-store-reference

현재 JBoss EAP의 인증 메커니즘에서 사용하지 않는 이 요소는 키 저장소에 대한 참조를 정의합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

key-store-name

키 저장소 이름입니다. 이 속성은 필수입니다.

alias

참조된 키 저장소에서 로드할 항목의 별칭입니다. 이는 단일 항목만 포함하는 키 저장소에만 대해 생략할 수 있습니다.

및 다음 하위 요소 중 하나만 포함할 수 있습니다.

예: 키 저장소-참조 구성

<key-store-reference key-store-name="..." alias="...">
  <key-store-clear-password password="..." />
  <key-store-credential>...</key-store-credential>
</key-store-reference>

credential-store-reference

이 요소는 자격 증명 저장소에 대한 참조를 정의합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

저장

자격 증명 저장소 이름입니다.

alias

참조된 자격 증명 저장소에서 로드할 항목의 별칭입니다. 이는 단일 항목만 포함하는 키 저장소에만 대해 생략할 수 있습니다.

clear-text

일반 텍스트 암호.

clear-password
이 요소는 일반 텍스트 암호를 정의합니다.
key-pair

현재 JBoss EAP의 인증 메커니즘에서 사용하지 않는 이 요소는 공개 및 개인 키 쌍을 정의합니다.

다음 하위 요소를 포함할 수 있습니다.

public-key-pem
현재 JBoss EAP의 인증 메커니즘에서 사용하지 않는 이 요소는 PEM 인코딩 공개 키를 정의합니다.
private-key-pem
이 요소는 PEM 인코딩 개인 키를 정의합니다.
certificate

현재 JBoss EAP의 인증 메커니즘에서 사용하지 않는 이 요소는 인증서를 지정합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

private-key-pem

PEM으로 인코딩된 개인 키입니다.

PEM

해당 인증서입니다.

bearer-token
이 요소는 전달자 토큰을 정의합니다.
oauth2-bearer-token

이 요소는 OAuth 2 전달자 토큰을 정의합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

token-endpoint-uri

토큰 엔드포인트의 URI입니다.

다음 하위 요소 중 하나와 하나만 포함할 수 있습니다.

client-credentials

이 요소는 클라이언트 자격 증명을 정의합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

client-id

클라이언트 ID입니다. 이 속성은 필수입니다.

client-secret

클라이언트 비밀입니다. 이 속성은 필수입니다.

resource-owner-credentials

이 요소는 리소스 소유자 자격 증명을 정의합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

name

리소스 이름입니다. 이 속성은 필수입니다.

암호문

암호. 이 속성은 필수입니다.

key-stores

이 선택적 요소는 구성의 다른 위치에서 참조되는 키 저장소를 정의합니다.

예: 키 저장소 구성

<configuration>
  <authentication-client xmlns="urn:elytron:client:1.2">
    <key-stores>
      <key-store name="...">
        <!-- The following 3 elements specify where to load the keystore from. -->
        <file name="..." />
        <load-from uri="..." />
        <resource name="..." />
        <!-- One of the following to specify the protection parameter to unlock the keystore. -->
        <key-store-clear-password password="..." />
        <key-store-credential>...</key-store-credential>
      </key-store>
    </key-stores>
   ...
  </authentication-client>
</configuration>

key-store

이 선택적 요소는 구성의 다른 위치에서 참조되는 키 저장소를 정의합니다.

키 저장소에는 다음과 같은 특성이 있습니다.

특성 이름특성 설명

name

키 저장소의 이름입니다. 이 속성은 필수입니다.

type

키 저장소 유형(예: JCEKS )입니다. 이 속성은 필수입니다.

공급자

자격 증명 저장소를 로드하는 데 사용할 java.security.Provider 의 이름입니다. 이 속성은 선택 사항입니다.

wrap-passwords

true인 경우 암호가 래핑됩니다. 암호는 명확한 암호 콘텐츠를 가지고 UTF-8로 인코딩하고 결과 바이트를 비밀 키로 저장하여 저장됩니다. 기본값은 false입니다.

키 저장소를 로드할 위치를 정의하는 다음 요소 중 정확히 하나가 포함되어야 합니다.

또한 키 저장소를 초기화할 때 사용할 protection 매개 변수를 지정하는 다음 요소 중 하나를 포함해야 합니다.

file

이 요소는 키 저장소 파일의 이름을 지정합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

name

정규화된 파일 경로 및 파일 이름.

load-from

이 요소는 키 저장소 파일의 URI를 지정합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

uri

키 저장소 파일의 URI입니다.

resource

이 요소는 스레드 컨텍스트 클래스 로더에서 로드할 리소스의 이름을 지정합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

name

리소스의 이름.

key-store-clear-password

이 요소는 일반 텍스트 암호를 지정합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

암호

일반 텍스트 암호.

key-store-credential

이 요소는 이 키 저장소에 액세스하기 위해 보호 매개 변수로 사용할 항목을 가져오는 다른 키 저장소에 대한 참조를 지정합니다.

key-store-credential 요소에는 다음 속성이 있습니다.

특성 이름특성 설명

key-store-name

키 저장소 이름입니다. 이 속성은 필수입니다.

alias

참조된 키 저장소에서 로드할 항목의 별칭입니다. 이는 단일 항목만 포함하는 키 저장소에만 대해 생략할 수 있습니다.

및 다음 하위 요소 중 하나만 포함할 수 있습니다.

예: key-store-credential 구성

<key-store-credential key-store-name="..." alias="...">
  <key-store-clear-password password="..." />
  <key-store-credential>...</key-store-credential>
</key-store-credential>

authentication-rules

이 요소는 아웃바운드 연결과 일치하는 규칙을 정의하여 적절한 인증 구성을 적용합니다. 인증 구성이 필요한 경우 액세스한 리소스의 URI와 선택적 추상 유형 및 추상 유형 기관이 구성에 정의된 규칙과 일치하여 사용할 인증 구성을 식별합니다.

이 요소에는 하나 이상의 하위 규칙 요소가 포함될 수 있습니다.

예: authentication-rules 구성

<configuration>
  <authentication-client xmlns="urn:elytron:client:1.2">
    ...
    <authentication-rules>
      <rule use-configuration="...">
        ...
      </rule>
     </authentication-rules>
     ...
  </authentication-client>
</configuration>

규칙

이 요소는 아웃바운드 연결과 일치하는 규칙을 정의하여 적절한 인증 구성을 적용합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

use-configuration

규칙이 일치할 때 선택되는 인증 구성입니다.

인증 구성 규칙 일치는 SSL 컨텍스트 규칙 일치와 독립적입니다. 인증 규칙 구조는 SSL 컨텍스트 규칙 구조와 동일합니다. 단, SSL 컨텍스트 규칙은 SSL 컨텍스트 규칙을 참조합니다.

다음 하위 요소를 포함할 수 있습니다.

예: 인증을 위한 규칙 구성

<rule use-configuration="...">
    <!-- At most one of the following two can be defined. -->
    <match-no-user />
    <match-user name="..." />
    <!-- Each of the following can be defined at most once. -->
    <match-protocol name="..." />
    <match-host name="..." />
    <match-path name="..." />
    <match-port number="..." />
    <match-urn name="..." />
    <match-domain name="..." />
    <match-abstract-type name="..." authority="..." />
</rule>

match-no-user
이 규칙은 URI에 포함된 user-info 가 없는 경우와 일치합니다.
match-user
이 규칙은 URI에 포함된 user-info 가 이 요소에 지정된 name 특성과 일치하는 경우 일치합니다.
match-protocol
이 규칙은 URI 내의 프로토콜이 이 요소에 지정된 프로토콜 이름 특성과 일치하는 경우 일치합니다.
match-host
이 규칙은 URI 내에 지정된 호스트 이름이 이 요소에 지정된 호스트 이름 특성과 일치하는 경우 일치합니다.
match-path
이 규칙은 URI 내에 지정된 경로가 이 요소에 지정된 경로 이름 특성과 일치하는 경우 일치합니다.
match-port
이 규칙은 URI 내에 지정된 포트 번호가 이 요소에 지정된 포트 번호 특성과 일치하는 경우 일치합니다. 이는 URI 내에 지정된 번호와 프로토콜에서 파생된 기본 포트 번호와 일치하지 않습니다.
match-urn
이 규칙은 URI의 체계별 부분이 이 요소에 지정된 name 특성과 일치하는 경우 일치합니다.
match-domain-name
이 규칙은 URI의 프로토콜이 domain 이고 URI의 체계별 부분이 이 요소에 지정된 name 특성과 일치하는 경우 일치합니다.
match-abstract-type
이 규칙은 추상 유형이 name 특성과 일치하고 authority가 이 요소에 지정된 authority 속성과 일치하는 경우 일치합니다.
authentication-configurations

이 요소는 인증 규칙에 따라 선택할 명명된 인증 구성을 정의합니다.

하나 이상의 구성 요소를 포함할 수 있습니다.

예: authentication-configurations 구성

<configuration>
  <authentication-client xmlns="urn:elytron:client:1.2">
    <authentication-configurations>
      <configuration name="...">
        <!-- Destination Overrides. -->
        <set-host name="..." />
        <set-port number="..." />
        <set-protocol name="..." />
        <!-- At most one of the following two elements. -->
        <set-user-name name="..." />
        <set-anonymous />
        <set-mechanism-realm name="..." />
        <rewrite-user-name-regex pattern="..." replacement="..." />
        <sasl-mechanism-selector selector="..." />
        <set-mechanism-properties>
          <property key="..." value="..." />
        </set-mechanism-properties>
        <credentials>...</credentials>
        <set-authorization-name name="..." />
        <providers>...</providers>
        <!-- At most one of the following two elements. -->
        <use-provider-sasl-factory />
        <use-service-loader-sasl-factory module-name="..." />
      </configuration>
    </authentication-configurations>
  </authentication-client>
</configuration>

설정

이 요소는 인증 규칙에 따라 선택할 명명된 인증 구성을 정의합니다.

다음 하위 요소를 포함할 수 있습니다.

set-host-name

이 요소는 인증된 호출의 호스트 이름을 재정의합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

name

호스트 이름입니다.

set-port-number

이 요소는 인증된 호출의 포트 번호를 재정의합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

숫자

포트 번호입니다.

set-protocol

이 요소는 인증된 호출의 프로토콜을 재정의합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

name

프로토콜.

set-user-name

이 요소는 인증에 사용할 사용자 이름을 설정합니다. set-anonymous 요소와 함께 사용하면 안 됩니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

name

인증에 사용할 사용자 이름입니다.

set-anonymous
요소는 익명 인증으로 전환하는 데 사용됩니다. set-user-name 요소와 함께 사용해서는 안 됩니다.
set-mechanism-realm-name

이 요소는 필요한 경우 SASL 메커니즘에서 선택할 영역의 이름을 지정합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

name

영역의 이름입니다.

rewrite-user-name-regex

이 요소는 정규 표현식 패턴을 정의하고 인증에 사용되는 사용자 이름을 다시 작성하기 위한 교체 방법을 정의합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

패턴

정규 표현식 패턴.

교체

를 대체하여 인증에 사용되는 사용자 이름을 다시 작성합니다.

sasl-mechanism-selector

이 요소는 org.wildfly.security.sasl.SaslMechanismSelector.fromString(문자열) 메서드의 구문을 사용하여 SASL 메커니즘 선택기를 지정합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

선택기

SASL 메커니즘 선택기.

the sasl-mechanism-selector 에 필요한 교체에 대한 자세한 내용은 How to Configure Server Security for JBoss EAP 에서 참조하십시오.

set-mechanism-properties
이 요소에는 인증 메커니즘에 전달할 하나 이상의 속성 요소가 포함될 수 있습니다.
property

이 요소는 인증 메커니즘에 전달할 속성을 정의합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

key

속성 이름입니다.

value

속성 값입니다.

인증 정보

이 요소는 인증 중에 사용할 수 있는 하나 이상의 자격 증명을 정의합니다.

인증 정보 저장소 구현에 따라 하나 이상의 다음 하위 요소를 포함할 수 있습니다.

이러한 요소는 protection-parameter-credentials 요소에 포함된 항목과 동일한 하위 요소입니다. 자세한 내용 및 구성 예는 protection-parameter-credentials 요소를 참조하십시오.

set-authorization-name

이 요소는 인증 ID와 다른 경우 권한 부여에 사용해야 하는 이름을 지정합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

name

권한 부여에 사용해야 하는 이름입니다.

use-provider-sasl-factory
이 요소는 이 구성에서 상속되거나 정의되었으며 사용 가능한 SASL 클라이언트 팩토리를 찾는 데 사용되는 java.security.Provider 인스턴스를 지정합니다. 이 요소는 use-service-loader-sasl-factory 요소와 함께 사용하면 안 됩니다.
use-service-loader-sasl-factory

이 요소는 서비스 로더 검색 메커니즘을 사용하여 SASL 클라이언트 팩토리를 검색하는 데 사용되는 모듈을 지정합니다. 모듈을 지정하지 않으면 구성을 로드한 클래스 로더가 사용됩니다. 이 요소는 use-provider-sasl-factory 요소와 함께 사용하면 안 됩니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

module-name

모듈의 이름입니다.

net-authenticator

이 요소에는 구성이 없습니다. 있는 경우 org.wildfly.security.auth.util.ElytronAuthenticatorjava.net.Authenticator.setDefault(Authenticator)에 등록됩니다. 이를 통해 인증이 필요한 HTTP 호출에 JDK API를 사용할 때 Elytron 인증 클라이언트 구성을 인증에 사용할 수 있습니다.

참고

JDK는 JVM에서 첫 번째 호출 시 인증을 캐시하므로 동일한 URI에 대한 다른 호출에 다른 자격 증명이 필요하지 않은 독립 실행형 프로세스에서만 이 방법을 사용하는 것이 좋습니다.

ssl-context-rules

이 선택적 요소는 SSL 컨텍스트 규칙을 정의합니다. ssl-context 가 필요한 경우 액세스한 리소스의 URI와 선택적 추상 유형 및 추상 유형 권한이 구성에 정의된 규칙과 일치하여 사용해야 하는 ssl-context 를 식별합니다.

이 요소에는 하나 이상의 하위 규칙 요소가 포함될 수 있습니다.

예: ssl-context-rules 구성

<configuration>
  <authentication-client xmlns="urn:elytron:client:1.2">
    <ssl-context-rules>
      <rule use-ssl-context="...">
        ...
      </rule>
    </ssl-context-rules>
    ...
  </authentication-client>
</configuration>

규칙

이 요소는 SSL 컨텍스트 정의와 일치하는 규칙을 정의합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

use-ssl-context

규칙이 일치할 때 선택하는 SSL 컨텍스트 정의입니다.

SSL 컨텍스트 규칙 일치는 인증 규칙 일치와 독립적입니다. SSL 컨텍스트 규칙 구조는 SSL 컨텍스트를 참조하는 반면 인증 규칙은 인증 구성을 참조한다는 점을 제외하고는 인증 구성 규칙 구조와 동일합니다.

다음 하위 요소를 포함할 수 있습니다.

예: SSL 컨텍스트에 대한 규칙 구성

<rule use-ssl-context="...">
  <!-- At most one of the following two can be defined. -->
  <match-no-user />
  <match-user name="..." />
  <!-- Each of the following can be defined at most once. -->
  <match-protocol name="..." />
  <match-host name="..." />
  <match-path name="..." />
  <match-port number="..." />
  <match-urn name="..." />
  <match-domain name="..." />
  <match-abstract-type name="..." authority="..." />
</rule>

ssl-contexts

이 선택적 요소는 SSL 컨텍스트 규칙에 의해 선택할 SSL 컨텍스트 정의를 정의합니다.

예: ssl-contexts 구성

<configuration>
  <authentication-client xmlns="urn:elytron:client:1.2">
    <ssl-contexts>
      <default-ssl-context name="..."/>
      <ssl-context name="...">
        <key-store-ssl-certificate>...</key-store-ssl-certificate>
        <trust-store key-store-name="..." />
        <cipher-suite selector="..." />
        <protocol names="... ..." />
        <provider-name name="..." />
        <providers>...</providers>
        <certificate-revocation-list path="..." maximum-cert-path="..." />
      </ssl-context>
    </ssl-contexts>
  </authentication-client>
</configuration>

default-ssl-context
이 요소는 javax.net.ssl.SSLContext.getDefault() 에서 반환한 SSL Context를 가져와 ssl-context-rules 에서 참조할 수 있도록 이름을 할당합니다. 이 요소는 반복할 수 있습니다. 즉, 다른 이름을 사용하여 기본 SSL 컨텍스트를 참조할 수 있습니다.
ssl-context

이 요소는 연결에 사용할 SSL 컨텍스트를 정의합니다.

선택적으로 다음 하위 요소 중 하나를 포함할 수 있습니다.

key-store-ssl-certificate

이 요소는 이 SSL 컨텍스트에 사용할 키 저장소 내의 항목에 대한 참조를 정의합니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

key-store-name

키 저장소 이름입니다. 이 속성은 필수입니다.

alias

참조된 키 저장소에서 로드할 항목의 별칭입니다. 이는 단일 항목만 포함하는 키 저장소에만 대해 생략할 수 있습니다.

다음과 같은 하위 요소를 포함할 수 있습니다.

이 구조는 키 저장소-자격 증명 구성에 사용되는 구조와 거의 동일합니다. 여기서 키 및 인증서에 대한 항목을 가져옵니다. 그러나 중첩된 key-store-clean-passwordkey-store-credential 요소는 여전히 항목을 잠금 해제하기 위한 보호 매개 변수를 제공합니다.

예: key-store-ssl-certificate 구성

<key-store-ssl-certificate key-store-name="..." alias="...">
  <key-store-clear-password password="..." />
  <key-store-credential>...</key-store-credential>
</key-store-ssl-certificate>

trust-store

이 요소는 TrustManager 를 초기화하는 데 사용되는 키 저장소에 대한 참조입니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

key-store-name

키 저장소 이름입니다. 이 속성은 필수입니다.

cipher-suite

이 요소는 활성화된 암호화 제품군에 대한 필터를 구성합니다.

다음과 같은 속성이 있습니다.

특성 이름특성 설명

선택기

암호화 제품군을 필터링하는 선택기입니다. 선택기는 org.wildfly.security.ssl.CipherSuiteSelector.fromString(selector) 메서드로 생성된 OpenSSL 스타일 암호 목록 문자열의 형식을 사용합니다.

예: 기본 필터링을 사용하는 암호화-강의 구성

<cipher-suite selector="DEFAULT" />

protocol
이 요소는 지원할 프로토콜의 공백으로 구분된 목록을 정의합니다. 사용 가능한 프로토콜 목록은 How to Configure Server Security for JBoss EAP에서 client-ssl-context 속성 테이블을 참조하십시오. TLSv1.2 를 사용하는 것이 좋습니다.
provider-name
사용 가능한 공급업체가 식별되면 이 요소에 정의된 이름이 있는 공급자만 사용됩니다.
certificate-revocation-list

이 요소는 인증서 폐기 목록의 경로와 인증 경로에 존재할 수 있는 자체 발급되지 않은 최대 중간 인증서 수를 모두 정의합니다. 이 요소가 있으면 인증서 폐기 목록에 대해 피어의 인증서를 확인할 수 있습니다.

다음과 같은 특성이 있습니다.

특성 이름특성 설명

경로

자격증 목록의 경로. 이 속성은 선택 사항입니다.

maximum-cert-path

인증 경로에 존재할 수 있는 자체 발급되지 않은 최대 중간 인증서 수입니다. 이 속성은 선택 사항입니다.

공급자

이 요소는 필요한 경우 java.security.Provider 인스턴스가 있는 방법을 정의합니다.

다음 하위 요소를 포함할 수 있습니다.

authentication-client 의 구성 섹션은 서로 독립적이므로 다음 위치에서 이 요소를 구성할 수 있습니다.

예제: 공급자 구성의 위치

<configuration>
  <authentication-client xmlns="urn:elytron:client:1.2">
    <providers />
    ...
    <credential-stores>
      <credential-store name="...">
        ...
        <providers />
      </credential-store>
    </credential-stores>
    ...
    <authentication-configurations>
      <authentication-configuration name="...">
        ...
        <providers />
      </authentication-configuration>
    </authentication-configurations>
    ...
    <ssl-contexts>
      <ssl-context name="...">
        ...
        <providers />
      </ssl-context>
    </ssl-contexts>
  </authentication-client>
</configuration>

프로바이더 구성은 재정의되지 않는 한 정의된 요소와 하위 요소에 모두 적용됩니다. 하위 요소의 공급자 사양은 상위 요소에 지정된 프로바이더 를 재정의합니다. 공급자 구성이 지정되지 않은 경우 기본 동작은 다음과 같습니다. 이는 전 세계에 등록된 공급자에 대해 Elytron 공급자 우선 순위를 부여하지만 세계적으로 등록된 공급자를 사용할 수도 있습니다.

예: 공급자 구성

<providers>
  <use-service-loader />
  <global />
</providers>

global
이 빈 요소는 java.security.Security.getProviders() 메서드 호출로 로드된 글로벌 공급자를 사용하도록 지정합니다.
use-service-loader
이 빈 요소는 지정된 모듈에 의해 로드되는 공급자를 사용하도록 지정합니다. 모듈을 지정하지 않으면 인증 클라이언트를 로드한 클래스 로더가 사용됩니다.
중요

모든 JBoss EAP 인증 메커니즘에서 현재 사용되지 않는 요소

현재 Elytron 클라이언트 구성의 자격 증명 요소의 하위 요소는 JBoss EAP의 인증 메커니즘에서 사용되지 않습니다. 인증 메커니즘의 사용자 지정 구현에서 사용할 수 있지만 이러한 메커니즘은 지원되지 않습니다.

  1. key-pair
  2. public-key-pem
  3. key-store-reference
  4. certificate

19.1.2. wildfly-config.xml 파일을 사용한 Jakarta Enterprise Beans 클라이언트 구성

urn:jboss:wildfly -client-ejb:3.0 네임스페이스에 있는 jboss -ejb-client 요소를 사용하여 wildfly- config.xml 파일을 사용하여 Jakarta Enterprise Beans 클라이언트 연결, 글로벌 인터셉터 및 호출 시간 초과를 구성할 수 있습니다. 이 섹션에서는 이 요소를 사용하여 Jakarta Enterprise Beans 클라이언트를 구성하는 방법에 대해 설명합니다.

jboss-ejb-client 요소 및 속성

jboss-ejb-client 요소에는 다음 세 가지 최상위 하위 요소를 하위 요소와 함께 선택적으로 포함할 수 있습니다.

invocation-timeout

이 선택적 요소는 Jakarta Enterprise Beans 호출 시간 초과를 지정합니다. 다음과 같은 속성이 있습니다.

특성 이름특성 설명

Jakarta Enterprise Beans 핸드셰이크 또는 메서드 호출 요청/응답 주기의 시간 제한(초)입니다. 이 속성은 필수입니다.

메서드 실행이 시간 초과 기간보다 오래 걸리는 경우 호출에서 java.util.concurrent.TimeoutException 이 발생하지만 서버 측은 중단되지 않습니다.

global-interceptors
이 선택적 요소는 글로벌 Jakarta Enterprise Beans 클라이언트 인터셉터를 지정합니다. 임의의 수의 인터셉터 요소를 포함할 수 있습니다.
interceptor

이 요소는 Jakarta Enterprise Beans 클라이언트 인터셉터를 지정하는 데 사용됩니다. 다음과 같은 특성이 있습니다.

특성 이름특성 설명

클래스

org.jboss.ejb.client.EJBClientInterceptor 인터페이스를 구현하는 클래스의 이름입니다. 이 속성은 필수입니다.

module

인터셉터 클래스를 로드하는 데 사용해야 하는 모듈의 이름입니다. 이 속성은 선택 사항입니다.

연결
이 요소는 Jakarta Enterprise Beans 클라이언트 연결을 지정하는 데 사용됩니다. 원하는 수의 연결 요소를 포함할 수 있습니다.
연결

이 요소는 Jakarta Enterprise Beans 클라이언트 연결을 지정하는 데 사용됩니다. 선택적으로 인터셉터 요소를 포함할 수 있습니다. 다음과 같은 속성이 있습니다.

특성 이름특성 설명

uri

연결의 대상 URI입니다. 이 속성은 필수입니다.

인터셉터
이 요소는 Jakarta Enterprise Beans 클라이언트 인터셉터를 지정하는 데 사용되며 많은 인터셉터 요소를 포함할 수 있습니다.
예: the wildfly-config.xml 파일의 Jakarta Enterprise Beans 클라이언트 구성

다음은 the wildfly-config.xml 파일에서 jboss-ejb-client 요소를 사용하여 Jakarta Enterprise Beans 클라이언트 연결, 글로벌 인터셉터 및 호출 타임아웃을 구성하는 예제입니다.

<configuration>
...
    <jboss-ejb-client xmlns="urn:jboss:wildfly-client-ejb:3.0">
        <invocation-timeout seconds="10"/>
        <connections>
            <connection uri="remote+http://10.20.30.40:8080"/>
        </connections>
        <global-interceptors>
            <interceptor class="org.jboss.example.ExampleInterceptor"/>
        </global-interceptors>
    </jboss-ejb-client>
...
</configuration>

19.1.3. wildfly-config.xml 파일을 사용한 HTTP 클라이언트 구성

다음은 the wildfly-config.xml 파일을 사용하여 HTTP 클라이언트를 구성하는 방법의 예입니다.

<configuration>
...
    <http-client xmlns="urn:wildfly-http-client:1.0">
        <defaults>
            <eagerly-acquire-session value="true" />
            <buffer-pool buffer-size="2000" max-size="10" direct="true" thread-local-size="1" />
        </defaults>
    </http-client>
...
</configuration>
중요

the wildfly-config.xml 파일을 사용하는 HTTP 클라이언트 구성은 기술 프리뷰로만 제공됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

기술 프리뷰 기능에 대한 지원 범위에 대한 자세한 내용은 Red Hat 고객 포털의 기술 프리뷰 기능 지원 범위를 참조하십시오.

19.1.4. wildfly-config.xml 파일을 사용하여 클라이언트 설정 원격

urn:jboss-remoting:5.0 네임스페이스에 있는 endpoint 요소를 사용하여 the wildfly- config.xml 파일을 사용하여 클라이언트 리모팅을 구성할 수 있습니다. 이 섹션에서는 이 요소를 사용하여 원격 클라이언트를 구성하는 방법에 대해 설명합니다.

끝점 요소 및 속성

엔드포인트 요소는 선택적으로 다음 두 개의 최상위 하위 요소를 하위 요소와 함께 포함할 수 있습니다.

또한 다음과 같은 속성이 있습니다.

특성 이름특성 설명

name

엔드포인트 이름입니다. 이 속성은 선택 사항입니다. 제공하지 않으면 가능한 경우 시스템의 호스트 이름에서 엔드포인트 이름을 파생합니다.

공급자
이 선택적 요소는 원격 엔드포인트에 대한 전송 프로바이더를 지정합니다. 원하는 수의 공급자 요소를 포함할 수 있습니다.
provider

이 요소는 원격 전송 공급자를 정의합니다. 다음과 같은 특성이 있습니다.

특성 이름특성 설명

스키마

이 공급자에 해당하는 기본 URI 스키마입니다. 이 속성은 필수입니다.

aliases

이 공급자에게도 인식되는 다른 URI 체계 이름의 공백으로 구분된 목록입니다. 이 속성은 선택 사항입니다.

module

프로바이더 구현이 포함된 모듈의 이름입니다. 이 속성은 선택 사항입니다. 제공하지 않는 경우 JBoss Remoting을 로드하는 클래스 로더는 공급자 클래스를 검색합니다.

클래스

전송 프로바이더를 구현하는 클래스의 이름입니다. 이 속성은 선택 사항입니다. 제공되지 않는 경우 java.util.ServiceLoader 기능은 공급자 클래스를 검색하는 데 사용됩니다.

연결
이 선택적 요소는 원격 엔드포인트에 대한 연결을 지정합니다. 원하는 수의 연결 요소를 포함할 수 있습니다.
연결

이 요소는 원격 엔드포인트에 대한 연결을 정의합니다. 다음과 같은 특성이 있습니다.

특성 이름특성 설명

대상

엔드포인트의 대상 URI입니다. 이 속성은 필수입니다.

read-timeout

해당 소켓에 대한 읽기 작업에 대한 시간 제한(초)입니다. 이 특성은 선택 사항이지만 heartbeat-interval 이 정의된 경우에만 제공해야 합니다.

write-timeout

쓰기 작업에 대한 시간 제한(초)입니다. 이 특성은 선택 사항이지만 heartbeat-interval 이 정의된 경우에만 제공해야 합니다.

ip-traffic-class

이 연결의 트래픽에 사용할 숫자 IP 트래픽 클래스를 정의합니다. 이 속성은 선택 사항입니다.

tcp-keepalive

TCP keepalive 사용 여부를 결정하는 부울 설정입니다. 이 속성은 선택 사항입니다.

heartbeat-interval

연결 하트비트를 확인할 때 사용할 간격(밀리초)입니다. 이 속성은 선택 사항입니다.

the wildfly-config.xml 파일에서 클라이언트 구성 원격화의 예

다음은 the wildfly-config.xml 파일을 사용하여 원격 클라이언트를 구성하는 예입니다.

<configuration>
  ...
  <endpoint xmlns="urn:jboss-remoting:5.0">
    <connections>
      <connection destination="remote+http://10.20.30.40:8080" read-timeout="50" write-timeout="50" heartbeat-interval="10000"/>
    </connections>
  </endpoint>
  ...
</configuration>

19.1.5. wildfly-config.xml 파일을 사용한 기본 XNIO 작업자 구성

urn:xnio:3.5 네임스페이스에 있는 worker 요소를 사용하여 the wildfly-config.xml 파일을 사용하여 XNIO 작업자를 구성할 수 있습니다. 이 섹션에서는 이 요소를 사용하여 XNIO 작업자 클라이언트를 구성하는 방법에 대해 설명합니다.

작업자 요소 및 속성

worker 요소는 선택적으로 하위 요소와 함께 다음 최상위 하위 요소를 포함할 수 있습니다.

daemon-threads

이 선택적 요소는 작업자 및 작업 스레드가 데몬 스레드인지 여부를 지정합니다. 이 요소에는 콘텐츠가 없습니다. 다음과 같은 속성이 있습니다.

특성 이름특성 설명

value

작업자 및 작업 스레드가 데몬 스레드인지 여부를 지정하는 부울 값입니다. true 값은 작업자 및 작업 스레드가 데몬 스레드여야 함을 나타냅니다. false 값은 데몬 스레드가 될 수 없음을 나타냅니다. 이 속성은 필수입니다.

이 요소가 제공되지 않으면 값이 true 라고 가정합니다.

worker-name

이 요소는 작업자의 이름을 정의합니다. 작업자 이름은 스레드 덤프 및 자카르타 관리에 표시됩니다. 이 요소에는 콘텐츠가 없습니다. 다음과 같은 속성이 있습니다.

특성 이름특성 설명

value

작업자의 이름입니다. 이 속성은 필수입니다.

pool-size

이 선택적 요소는 작업자의 작업 스레드 풀의 최대 크기를 정의합니다. 이 요소에는 콘텐츠가 없습니다. 다음과 같은 속성이 있습니다.

특성 이름특성 설명

max-threads

생성해야 하는 최대 스레드 수를 지정하는 양의 정수입니다. 이 속성은 필수입니다.

task-keepalive

이 선택적 요소는 작업 스레드가 만료되기 전에 유지 시간을 설정합니다. 다음과 같은 속성이 있습니다.

특성 이름특성 설명

value

유휴 스레드를 활성 상태로 유지하기 위해 최소 시간(초)을 지정하는 양의 정수입니다. 이 속성은 필수입니다.

io-threads

이 선택적 요소는 유지 관리해야 하는 I/O 선택기 스레드 수를 결정합니다. 일반적으로 이 숫자는 사용 가능한 코어 수의 배수인 소수의 상수여야 합니다. 다음과 같은 속성이 있습니다.

특성 이름특성 설명

value

I/O 스레드 수를 지정하는 양의 정수입니다. 이 속성은 필수입니다.

stack-size

이 선택적 요소는 작업자 스레드에 대해 원하는 최소 스레드 스택 크기를 설정합니다. 이 요소는 밀도가 프리미엄인 매우 특별한 상황에서만 정의해야 합니다. 다음과 같은 속성이 있습니다.

특성 이름특성 설명

value

요청된 스택 크기를 바이트로 지정하는 양의 정수입니다. 이 속성은 필수입니다.

outbound-bind-addresses
이 선택적 요소는 아웃바운드 연결에 사용할 바인드 주소를 지정합니다. 각 바인딩 주소 매핑은 대상 IP 주소 블록과 해당 블록 내의 대상 연결에 사용할 바인드 주소 및 선택적 포트 번호로 구성됩니다. 다수의 bind-address 요소를 포함할 수 있습니다.
bind-address

이 선택적 요소는 개별 바인드 주소 매핑을 정의합니다. 다음과 같은 특성이 있습니다.

특성 이름특성 설명

일치

일치하는 CIDR 표기법의 IP 주소 블록입니다.

bind-address

address 블록이 일치하는 경우 바인딩할 IP 주소입니다. 이 속성은 필수입니다.

bind-port

주소 블록이 일치하는 경우 에 바인딩할 포트 번호입니다. 이 값은 0 으로 지정되므로 모든 포트에 바인딩됩니다. 이 속성은 선택 사항입니다.

the wildfly-config.xml 파일의 XNIO 작업자 구성 예

다음은 the wildfly-config.xml 파일을 사용하여 기본 XNIO 작업자를 구성하는 방법의 예입니다.

<configuration>
  ...
  <worker xmlns="urn:xnio:3.5">
    <io-threads value="10"/>
    <task-keepalive value="100"/>
  </worker>
  ...
</configuration>