第1章 サーバーおよびインターフェイスの保護
1.1. ブロックの構築
1.1.1. インターフェイスおよびソケットバインディング
JBoss EAP は、ホストのインターフェー (inet-address
や nic
など) と、Web アプリケーションとその管理インターフェイスの両方との通信用のポートを使用します。これらのインターフェイスおよびポートは、JBoss EAP の インターフェイス
および socket-binding-groups
設定により定義され、設定されます。
インターフェイス
および socket-binding-groups
の定義および設定方法に関する詳細は、JBoss EAP設定ガイド の ソケットバインディング を参照してください。
例: インターフェイス
<interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:127.0.0.1}"/> </interface> </interfaces>
例: ソケットバインディンググループ
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/> <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/> <socket-binding name="http" port="${jboss.http.port:8080}"/> <socket-binding name="https" port="${jboss.https.port:8443}"/> <socket-binding name="txn-recovery-environment" port="4712"/> <socket-binding name="txn-status-manager" port="4713"/> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25"/> </outbound-socket-binding> </socket-binding-group>
1.1.2. Elytron サブシステム
1.1.2.1. サーバー全体での Elytron セキュリティーの有効化
Elytron は、シンプルな方法でサーバー全体に有効にできます。JBoss EAP 7.1 では、Elytron をセキュリティープロバイダーとして有効にするサンプル設定スクリプトが導入されました。このスクリプトは、サーバーインストールの EAP_HOME/docs/examples ディレクトリーにあります。
以下のコマンドを実行して、サーバー全体で Elytron セキュリティーを有効にします。
$ EAP_HOME/bin/jboss-cli.sh --file=EAP_HOME/docs/examples/enable-elytron.cli
1.1.2.2. Elytron セキュリティードメインの作成
elytron
サブシステムのセキュリティードメインはセキュリティーレルムと併せて使用されると、コア管理認証とアプリケーションによる認証の両方に使用されます。
Elytron セキュリティードメインの使用は、ドメインごとに 1 つに限定されます。複数のレガシーセキュリティーが必要である場合、1 つの Elytron セキュリティードメインを使用して対応できるようになりました。
管理 CLI を使用したセキュリティードメインの追加
/subsystem=elytron/security-domain=domainName:add(realms=[{realm=realmName,role-decoder=roleDecoderName}],default-realm=realmName,permission-mapper=permissionMapperName,role-mapper=roleMapperName,...)
管理コンソールを使用したセキュリティードメインの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration → Subsystems
Security (Elytron) Other Settings と選択し、表示 をクリックします。 -
SSL
セキュリティードメイン を選択し、追加 ボタンをクリックして新しいセキュリティードメインを設定します。
1.1.2.3. Elytron セキュリティーレルムの作成
elytron
サブシステムのセキュリティーレルムはセキュリティードメインと併せて使用されると、コア管理認証とアプリケーションによる認証の両方に使用されます。また、セキュリティーレルムは、jdbc-realm
、filesystem-realm
、properties-realm
など、アイデンティティーストアに基づいて具体的に入力されます。
管理 CLI を使用したセキュリティーレルムの追加
/subsystem=elytron/type-of-realm=realmName:add(....)
jdbc-realm
、filesystem-realm
、および properties-realm
などの特定のレルムを追加する例は、前のセクションにあります。
管理コンソールを使用したセキュリティーレルムの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration
Subsystems Security (Elytron) Security Realms と選択し、表示 をクリックします。 - セキュリティーレルム タブから適切なセキュリティーレルムタイプを選択し、追加 をクリックして新しいセキュリティーレルムを設定します。
1.1.2.4. Elytron ロールデコーダーの作成
ロールデコーダーは、セキュリティーレルムによって提供される ID の属性をロールに変換します。また、ロールデコーダーは、empty-role-decoder
、simple-role-decoder
、custom-role-decoder
などの機能に基づいて具体的に入力されます。
管理 CLI を使用したロールデコーダーの追加
/subsystem=elytron/ROLE-DECODER-TYPE=roleDeoderName:add(....)
管理コンソールを使用したロールデコーダーの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration
Subsystems Security (Elytron) Mappers / Decoders と選択し、表示 をクリックします。 - Role Decoder をクリックし、適切なロールデコーダータイプを選択し、Add をクリックして新規ロールデコーダーを設定します。
1.1.2.5. elytron
サブシステムへの source-address-role-decoder
の追加
管理 CLI または管理コンソールのいずれかを使用して、source-address-role-decoder
ロールデコーダを elytron
サブシステムに追加します。このロールデコーダを mappers
要素に設定して、クライアントの IP アドレスで権限付与に関する判断を下すことができます。
source-address-role-decoder
は、クライアントの IP アドレスを抽出し、pattern
属性または source-address
属性で指定された IP アドレスと一致することを確認します。クライアントの IP アドレスがいずれかの属性で指定された IP アドレスと一致する場合、elytron
は roles
属性を使用してユーザーにロールを割り当てます。
この手順では、管理 CLI を使用して、elytron
サブシステムの mappers
要素に source-address-role-decoder
を追加します。管理コンソールを使用してこのタスクを実行する場合は、関連資料セクションで提供されるリンクを参照してください。
前提条件
- サーバーのクライアントの IP アドレスを書き留めておく。
手順
elytron
サブシステムでは、管理 CLI を使用してsource-address-role-decoder
を追加します。source-address-role-decoder
の場合は、ユーザーの IP アドレスと少なくとも 1 つのロールを指定する必要があります。mappers
要素にsource-address-role-decoder
を追加した例。/subsystem=elytron/source-address-role-decoder=decoder1:add(source-address="10.10.10.10", roles=["Administrator"])
この例では、
source-address-role-decoder
をdecoder1
と名付けて設定しています。クライアントのサーバー接続時に、elytron
サブシステムはsource-address-role-decoder
を使用して、クライアントの IP アドレスがpattern
属性またはsource-address
属性のいずれかで指定された IP アドレスと一致するかどうかをチェックします。前述の例では、source-address-role-decoder
は、クライアントの IP アドレスが10.10.10.10
であるかどうかをチェックします。クライアントの IP アドレスが10.10.10.10
の場合、elytron
はroles
属性を使用してユーザーにAdministrator
ロールを割り当てます。注記異なるネットワークからの接続を確立する必要があるユーザーに、特定のロールを割り当てるために、
source-address-role-decoder
を設定できます。security-domain
では、role-decoder
属性で設定済みのsource-address-role-decoder
を参照します。これにより、Elytron セキュリティードメインが認証の判断を行う際にsource-address-role-decoder
が使用されます。設定されている
source-address-role-decoder
,decoder1
をrole-decoder
属性で参照している例。/subsystem=elytron/security-domain=domainName:add(role-decoder=decoder1,default-realm=realmName,realms=[{realm=realmName}])
関連情報
- 管理コンソールでロールデコーダーを追加する方法は、Elytron Subsystem を参照してください。
-
elytron
サブシステムは、Security ArchitectureガイドのElytron Subsystemを参照してください。
1.1.3. elytron
サブシステムへの aggregate-role-decoder
の設定
aggregate-role-decoder
は、2 つ以上のロールデコーダーで設定されます。aggregate-role-decoder
を使用すると、各ロールデコーダから返されたロールを集約できます。
前提条件
-
elytron
サブシステムに少なくとも 2 つのロールデコーダを設定する。
手順
aggregate-role-decoder
ロールデコーダに少なくとも 2 つのロールデコーダを追加します。aggregate-role-decoder
ロールデコーダにdecoder1
とdecoder2
を追加した例。/subsystem=elytron/aggregate-role-decoder=aggregateDecoder:add(role-decoders=[decoder1, decoder2])
関連情報
-
elytron
サブシステムで利用可能なロールデコーダは、Security ArchitectureガイドのResources in Elytron Subsystemを参照してください。 - ロールデコーダの作成については、Elytron Subsystem を参照してください。
1.1.3.1. Elytron ロールマッパーの作成
ロールマッパーは、ロールが他のロールにデコードされた後にロールをマッピングします。例には、ロール名の正規化、またはデコードされた後のプリンシパルへの特定のロールの追加と、このプリンシパルからの削除が含まれます。ロールマッパーは、たとえば add-prefix-role-mapper
、add-suffix-role-mapper
、constant-role-mapper
などの機能に基づいて具体的に型が指定されます。
ロールマッパーを追加すると、一般的な形式になります
/subsystem=elytron/ROLE-MAPPER-TYPE=roleMapperName:add(...)
管理コンソースを使用したロールマッパーの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration
Subsystems Security (Elytron) Mappers / Decoders と選択し、表示 をクリックします。 - Role Mapper をクリックし、適切なロールマッパータイプを選択し、Add をクリックして新規ロールマッパーを設定します。
1.1.3.2. Elytron パーミッションセットの作成
パーミッションセットを使用すると、パーミッションをアイデンティティーに割り当てることができます。
管理 CLI を使用したパーミッションセットの追加
/subsystem=elytron/permission-set=PermissionSetName:add(permissions=[{class-name="...", module="...", target-name="...", action="..."}...])
permissions
パラメーターは一連のパーミッションで設定されます。各パーミッションには次の属性があります。
-
class-name
は、パーミッションの完全修飾クラス名です。これは、必要な唯一のパーミッション属性です。 -
モジュール
は、パーミッションのロードに使用されるオプションのモジュールです。 -
target-name
は、構築されるときにパーミッションに渡される任意のターゲット名です。 -
action
は、構築されたときにパーミッションに渡される任意のアクションです。
1.1.3.3. Elytron パーミッションマッパーの作成
アイデンティティーに割り当てられているロールに加え、パーミッションを割り当てることもできます。パーミッションマッパーはパーミッションをアイデンティティーに割り当てます。パーミッションマッパーは、その機能に基づいて、logical-permission-mapper
、simple-permission-mapper
、custom-permission-mapper
などのように具体的に型指定されます。
管理 CLI を使用したパーミッションマッパーの追加
/subsystem=elytron/simple-permission-mapper=PermissionMapperName:add(...)
管理コンソールを使用したパーミッションマッパーの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration
Subsystems Security (Elytron) Mappers / Decoders と選択し、表示 をクリックします。 - Principal Decoder をクリックし、適切なプリンシパルデコーダータイプを選択して、Add をクリックし、新しいプリンシパルデコーダーを設定します。
1.1.3.4. 認証設定の作成
認証設定には、接続を行う際に使用する認証情報が含まれます。認証設定の詳細は、JBoss EAPHow to Configure Identity Managementの Elytron クライアントによるクライアント認証の設定 を参照してください。
Elytron セキュリティードメインは、認証情報ストアの代わりに、アクセスしているユーザーの認証情報を使用するように設定できます。たとえば、セキュリティードメインは、アクセスしてくるユーザーの認証に Kerberos と組み合わせて使用できます。JBoss EAP のKerberos による SSO のセットアップ方法 の Configure the Elytron Subsystem に従い、Kerberos セキュリティーファクトリーで obtain-kerberos-ticket=true
に設定します。
管理 CLI を使用した認証設定の追加
/subsystem=elytron/authentication-configuration=AUTHENTICATION_CONFIGURATION_NAME:add(authentication-name=AUTHENTICATION_NAME, credential-reference={clear-text=PASSWORD})
管理コンソールを使用した認証設定の追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration → Subsystems
Security (Elytron) Other Settings と選択し、表示 をクリックします。 -
Authentication
Authentication Configuration の順にクリックし、Add をクリックして新しい認証設定を設定します。
authentication-configuration
属性の完全リストは、Elytron サブシステムのコンポーネント を参照してください。
1.1.3.5. authentication-context の作成
認証コンテキストには、一連のルールと、接続の確立に使用する 認証設定 または SSL contexts が含まれます。認証コンテキストの詳細は、JBoss EAP アイデンティティー管理の設定方法 の Elytron クライアントによるクライアント認証の設定 を参照してください。
管理 CLI を使用した認証コンテキストの追加
認証コンテキストは、以下の管理 CLI コマンドを使用して作成できます。
/subsystem=elytron/authentication-context=AUTHENTICATION_CONTEXT_NAME:add()
通常、認証コンテキストには一連のルールと、認証設定または SSL コンテキストのいずれかが含まれます。以下の CLI コマンドは、ホスト名が localhost
の場合にのみ機能する認証コンテキストの定義を示しています。
/subsystem=elytron/authentication-context=AUTHENTICATION_CONTEXT_NAME:add(match-rules=[{authentication-configuration=AUTHENTICATION_CONFIGURATION_NAME, match-host=localhost}])
管理コンソールを使用した認証コンテキストの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration → Subsystems
Security (Elytron) Other Settings と選択し、表示 をクリックします。 -
Authentication
Authentication Context の順にクリックし、Add をクリックして、新しい認証コンテキストを設定します。
authentication-context
属性の完全リストは、Elytron サブシステムのコンポーネント を参照してください。
1.1.3.6. Elytron 認証ファクトリーの作成
認証ファクトリーは、特定の認証メカニズムに使用される認証ポリシーです。認証ファクトリーは特に、http-authentication-factory
、sasl-authentication-factory
および kerberos-security-factory
などの認証メカニズムに基づいています。
管理 CLI を使用した認証ファクトリーの追加
/subsystem=elytron/AUTH-FACTORY-TYPE=authFactoryName:add(....)
管理コンソールを使用した認証ファクトリーの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration → Subsystems
Security (Elytron) Factories / transformers の順に選択し、表示 をクリックします。 - HTTP Factories、SASL Factories、または Other Factories をクリックして、適切なファクトリータイプを選択し、Add をクリックして新しいファクトリーを設定します。
1.1.3.7. Elytron キーストアの作成
key-store
は、キーストアの種類、その場所、アクセスするためのクレデンシャルなどを含むキーストアまたはトラストストアの定義です。
elytron
サブシステムで使用するキーストアのサンプルを生成するには、以下のコマンドを使用します。
$ keytool -genkeypair -alias localhost -keyalg RSA -keysize 1024 -validity 365 -keystore keystore.jks -dname "CN=localhost" -keypass secret -storepass secret
管理 CLI を使用したキーストアの追加
新たに作成されたキーストアを参照する Elytron で key-store
を定義するには、以下の管理 CLI コマンドを実行します。このコマンドは、提供されるファイルシステムパス、キーストアのアクセスに使用される認証情報の参照、キーストアのタイプに関連したキーストアへのパスを指定します。
/subsystem=elytron/key-store=newKeyStore:add(path=keystore.jks,relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=JKS)
上記のコマンドは、relative-to
を使用してキーストアファイルの場所を参照します。または、path
のキーストアにフルパスを指定することで、relative-to
を省略できます。
管理コンソールを使用したキーストアの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration → Subsystems
Security (Elytron) Other Settings と選択し、表示 をクリックします。 -
Stores
Key Store の順にクリックし、Add をクリックして新しいキーストアを設定します。
1.1.3.8. Elytron キーマネージャーの作成
key-manager
は key-store
を参照し、SSL コンテキストとともに使用されます。
管理 CLI を使用したキーマネージャーの追加
以下のコマンドは、参照する基盤のキーストア、キーマネージャーを初期化するときに使用するアルゴリズム、基礎となるキーストアのエントリーにアクセスするための認証情報の参照を指定します。
/subsystem=elytron/key-manager=newKeyManager:add(key-store=KEY_STORE,credential-reference={clear-text=secret})
Elytron サブシステムはデフォルトで KeyManagerFactory.getDefaultAlgorithm()
を使用してアルゴリズムを決定するため、Red Hat は前のコマンドでアルゴリズム属性を指定しませんでした。ただし、アルゴリズム属性は指定できます。アルゴリズム属性を指定するには、使用している JDK によるキーマネージャーアルゴリズムを知る必要があります。たとえば、SunJSSE を使用する JDK は、PKIX
および SunX509
アルゴリズムを提供します。
前のコマンドでは、SunX509
をキーマネージャーアルゴリズム属性として指定できます。
管理コンソールを使用したキーマネージャーの追加
- 管理コンソールにアクセスします。詳細は、JBoss EAP設定ガイド の 管理コンソール を参照してください。
-
Configuration → Subsystems
Security (Elytron) Other Settings と選択し、表示 をクリックします。 -
SSL
Key Manager をクリックし、Add をクリックして新しいキーマネージャーを設定します。
1.1.3.9. Elytron トラストストアの作成
Elytron でトラストストアを作成するには、以下の CLI コマンドを実行します。
/subsystem=elytron/key-store=default-trust-store:add(type=JKS, relative-to=jboss.server.config.dir, path=application.truststore, credential-reference={clear-text=password})
このコマンドを正常に実行するには、EAP_HOME/standalone/configuration
ディレクトリー内に application.truststore
ファイルを含める必要があります。エンドポイントの証明書が CA によって署名されている場合は、トラストストアに、エンドポイントや証明書チェーンに関連付けられた証明書が含まれる必要があります。
Red Hat は、自己署名証明書の使用は推奨していません。理想的には、証明書は CA によって署名され、トラストストアには、ROOT
および中間 CA を示す証明書チェーンが含まれている必要があります。
1.1.3.10. Elytron トラストマネージャーの作成
Elytron でトラストマネージャーを定義するには、以下の CLI コマンドを実行します。
/subsystem=elytron/trust-manager=default-trust-manager:add(key-store=TRUST-STORE-NAME)
これにより、アプリケーションサーバーが信頼する証明書のソースとして、定義されたトラストストアが設定されます。
1.1.3.11. 初期状態の Elytron コンポーネントの使用
JBoss EAP では、elytron
サブシステムで設定された一連のデフォルトの Elytron コンポーネントを利用できます。これらの事前設定されたコンポーネントの詳細は、セキュリティーアーキテクチャーガイドの 初期状態 のセクションを参照してください。
1.1.3.11.1. 管理インターフェイスのセキュア化
JBoss EAP を有効化して、管理インターフェイスの保護を行うために初期状態の Elytron コンポーネントを使用する詳細は、Elytron でのユーザー認証 を参照してください。
1.1.3.11.2. アプリケーションの保護
elytron
サブシステムではデフォルトで、http-authentication-factory
の application-http-authentication
を利用できます。これは、アプリケーションの保護に使用できます。application-http-authentication
の設定方法の詳細は、セキュリティーアーキテクチャーガイドの 初期設定 を参照してください。
application-http-authentication
を使用するようにアプリケーションを設定するには、アイデンティティ管理ガイドの設定方法の 認証に Elytron またはレガシーセキュリティーを使用するよう Web アプリケーションを設定する手順 を参照してください。また、JBoss EAP アイデンティティー管理の設定方法 の アプリケーションの認証設定の上書き の手順に従って、すべてのアプリケーションのデフォルトの動作を上書きできます。
1.1.3.11.3. SSL/TLS の使用
JBoss EAP では、レガシーコア管理認証を使用してデフォルトの一方向 SSL/TLS 設定を利用できます。ただし、elytron
サブシステムでは利用できません。以下のセクションでは、管理インターフェイスとアプリケーションの両方に elytron
サブシステムを使用して SSL/TLS の設定に関する詳細を確認することができます。
1.1.3.11.4. Elytron を他のサブシステムで使用する
アプリケーションと管理インターフェイスの保護に加えて、Elytron は JBoss EAP の他のサブシステムとも統合します。
batch-jberet
-
batch-jberet
サブシステムを設定すると、Elytron セキュリティードメインでバッチジョブを実行することができます。詳細は、設定ガイドの バッチジョブのセキュリティー設定 を参照してください。 datasources
- クレデンシャルストアまたは Elytron セキュリティードメインを使用することで、データソース定義に認証情報を提供できます。詳細は、設定ガイド の データセキュリティー を参照してください。
ejb3
-
Elytron セキュリティードメインのマッピングを
ejb3
サブシステムで作成し、デプロイメントによって参照されるようにすることができます。詳細は、Jakarta Enterprise Beans アプリケーションの開発の EJB サブシステムと Elytron の統合 を参照してください。 iiop-openjdk
-
elytron
サブシステムを使用することで、iiop-openjdk
サブシステムを使用してクライアントとサーバーの間で SSL/TLS を設定できます。詳細は、設定ガイドの Elytron サブシステムで SSL/TLS を使用するよう IIOP を設定 を参照してください。 jca
-
elytron-enabled
属性を使用して、ワークマネージャーの Elytron セキュリティーを有効にできます。詳細は、JBoss EAP設定ガイドの IO サブシステムの設定 を参照してください。 jgroups
-
SYM_ENCRYPT
およびASYM_ENCRYPT
プロトコルを設定して、elytron
サブシステムで定義されたキーストアまたは認証情報リファレンスを参照できます。詳細については、設定ガイド の クラスターのセキュア化 を参照してください。 mail
-
認証情報ストアを使用することで、
mail
サブシステムのサーバー定義に認証情報を指定できます。詳細は、設定ガイドの パスワードに認証情報ストアを使用 を参照してください。 messaging-activemq
-
messaging-activemq
サブシステムで使用されるリモート接続へのリモート接続を保護することができます。詳細は、メッセージングの設定の Elytron Subsystem の使用 セクションを参照してください。 modcluster
-
Elytron クライアント
ssl-context
を使用することで、SSL/TLS を使用してロードバランサーと通信できます。詳細は、Elytron Integration with the ModCluster Subsystem を参照してください。 remoting
-
remoting
サブシステムのインバウンドおよびアウトバウンド接続を設定して、elytron
サブシステムに定義された認証コンテキスト、SASL 認証ファクトリー、および SSL コンテキストを参照できます。各種類の接続の設定に関する詳細は、Elytron Integration with the Remoting Subsystem を参照してください。 resource-adapters
- Elytron を使用してリソースアダプターへの接続をセキュアにすることができます。作業マネージャーによって実行される作業を送信するときに、セキュリティーインフローを有効にしてセキュリティー認証情報を確立できます。詳細は、設定ガイド の Elytron サブシステムを使用するようリソースアダプターを設定 を参照してください。
undertow
-
elytron
サブシステムを使用すると、SSL/TLS とアプリケーション認証の両方を設定できます。アプリケーション認証の設定に関する詳細は、How to Configure Identity Management の SSL/TLS の使用 と 認証に Elytron またはレガシーセキュリティーを使用するよう Web アプリケーションを設定する手順 を参照してください。
1.1.3.12. Elytron サブシステムの有効化および無効化
elytron
サブシステムは、レガシー security
サブシステムとともにデフォルトの JBoss EAP プロファイルで事前設定されています。
elytron
サブシステムが設定されていないプロファイルを使用している場合は、elytron
エクステンションを追加し、elytron
サブシステムを有効にして追加できます。
elytron
サブシステムに必要な elytron
拡張機能を追加する方法:
/extension=org.wildfly.extension.elytron:add()
JBoss EAP で elytron
サブシステムを有効にする方法:
/subsystem=elytron:add reload
JBoss EAP で elytron
サブシステムを無効にする方法:
/subsystem=elytron:remove reload
JBoss EAP 内の他のサブシステムには elytron
サブシステムの依存関係があることがあります。これらの依存関係を無効にしても問題が解決されない場合、JBoss EAP の起動時にエラーが発生します。
1.1.4. レガシーセキュリティーサブシステム
1.1.4.1. セキュリティーサブシステムの無効化
サブシステムの remove
オペレーションを実行して、JBoss EAP の security
サブシステムを無効にできます。
手順
JBoss EAP で
security
サブシステムを無効にする方法:/subsystem=security:remove
JBoss EAP 内のその他のサブシステムには、security
サブシステムの依存関係があることがあります。これらの依存関係を無効にしても問題が解決されない場合、JBoss EAP の起動時にエラーが発生します。
1.1.4.2. セキュリティーサブシステムの有効化
サブシステムの add
操作を実行して、JBoss EAP の security
サブシステムを有効にすることができます。
手順
JBoss EAP で
security
サブシステムを有効にする方法:/subsystem=security:add
1.1.5. レガシーセキュリティーレルム
JBoss EAP はセキュリティーレルムを使用して、ローカル、LDAP、プロパティーなどの認証および承認メカニズムを定義します。
例: セキュリティーレルム
<security-realms> <security-realm name="ManagementRealm"> <authentication> <local default-user="$local" skip-group-loading="true"/> <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/> </authentication> <authorization map-groups-to-roles="false"> <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/> </authorization> </security-realm> <security-realm name="ApplicationRealm"> <authentication> <local default-user="$local" allowed-users="*" skip-group-loading="true"/> <properties path="application-users.properties" relative-to="jboss.server.config.dir"/> </authentication> <authorization> <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/> </authorization> </security-realm> </security-realms>
JBoss EAP では、既存のセキュリティーレルムの更新に加え、新しいセキュリティーレルムの作成も可能になります。管理コンソールで新しいセキュリティーレルムを作成したり、管理 CLI から以下のコマンドを呼び出すこともできます。
/core-service=management/security-realm=<new_realm_name>:add()
新しいセキュリティーレルムを作成し、認証または承認にプロパティーファイルを使用する場合は、新しいセキュリティードメイン専用の新しいプロパティーファイルを作成する必要があります。JBoss EAP は、他のセキュリティードメインによって使用される既存のファイルを再利用せず、設定ファイルが存在しない場合には、設定に指定された新しいファイルを自動的に作成します。
関連情報
- セキュリティーレルムの詳細は、セキュリティーレルム を参照してください。
1.1.6. 管理インターフェイスのセキュア化に認証とソケットバインディングを使用する
socket-binding
、http-authentication-factory
、および http-upgrade
を組み合わせることで、elytron
サブシステムを使用して管理インターフェイスを保護できます。または、security-realm
とともに socket-binding
を使用して、レガシーコア管理認証で管理インターフェイスをセキュア化にすることもできます。また、管理インターフェイスを無効にし、さまざまなロールとアクセス権を持つようにインターフェイスのユーザーを設定することもできます。
デフォルトでは、JBoss EAP は管理インターフェイスに接続するための http-interface
を定義します。
手順
サーバー管理インターフェイスの設定を表示します。
[standalone@localhost:9990 /] /core-service=management:read-resource(recursive=true) { "outcome" => "success", "result" => { "access" => {...}, "ldap-connection" => undefined, "management-interface" => {"http-interface" => { "allowed-origins" => undefined, "console-enabled" => true, "http-authentication-factory" => "management-http-authentication", "http-upgrade" => { "enabled" => true, "sasl-authentication-factory" => "management-sasl-authentication" }, "http-upgrade-enabled" => true, "sasl-protocol" => "remote", "secure-socket-binding" => undefined, "security-realm" => undefined, "server-name" => undefined, "socket-binding" => "management-http", "ssl-context" => undefined }}, "security-realm" => {...}, "service" => undefined } }