第17章 リモーティングの設定
17.1. Remoting サブシステム リンクのコピーリンクがクリップボードにコピーされました!
remoting サブシステムは、ローカルおよびリモートサービスのインバウンドおよびアウトバウンド接続の設定を可能にします。
JBoss Remoting には、設定可能な要素としてエンドポイント、コネクター、複数のローカルおよびリモート接続 URI が含まれます。独自のアプリケーションにカスタムコネクターを使用する場合を除き、remoting のサブシステムの設定は必要でないことがほとんどです。EJB などの、リモーティングクライアントとして動作するアプリケーションには特定のコネクターに接続するための別の設定が必要になります。
Remoting サブシステムのデフォルト設定
<subsystem xmlns="urn:jboss:domain:remoting:4.0">
<endpoint/>
<http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
</subsystem>
<subsystem xmlns="urn:jboss:domain:remoting:4.0">
<endpoint/>
<http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
</subsystem>
remoting サブシステムで使用できる属性の完全リストは、「Remoting サブシステムの属性」を参照してください。
リモーティングエンドポイント
リモーティングエンドポイントは、io サブシステムによって宣言および設定される XNIO ワーカーを使用します。
リモーティングエンドポイントの設定方法の詳細は、「エンドポイントの設定」を参照してください。
コネクター
コネクターは主なリモーティング設定要素です。複数のコネクターを設定できます。各コネクターは、複数のサブ要素を持つ <connector> 要素とその他の属性で構成されます。デフォルトのコネクターは複数の JBoss EAP サブシステムによって使用されます。カスタムコネクターの要素や属性の設定はアプリケーションによって異なるため、詳細は Red Hat グローバルサポートサービスまでご連絡ください。
コネクターの設定方法の詳細は、「コネクターの設定」を参照してください。
アウトバウンド接続
3 つのタイプのアウトバウンド接続を指定することができます。
- URI によって指定されるアウトバウンド接続
- ソケットなどのローカルリソースに接続するローカルアウトバウンド接続
- リモートリソースに接続し、セキュリティーレルムを使用して認証を行うリモートアウトバウンド接続
追加設定
リモーティングは、ネットワークインターフェースや IO ワーカーなどの remoting サブシステム外部で設定された複数の要素に依存します。
詳細は、「リモーティングの追加設定」を参照してください。
17.2. エンドポイントの設定 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP 6 では、ワーカースレッドプールは直接 remoting サブシステムで設定されていました。JBoss EAP 7 では、リモーティング endpoint 設定が io サブシステムからワーカーを参照します。
JBoss EAP は 以下の endpoint 設定をデフォルトで提供します。
<subsystem xmlns="urn:jboss:domain:remoting:4.0"> <endpoint/> ... </subsystem>
<subsystem xmlns="urn:jboss:domain:remoting:4.0">
<endpoint/>
...
</subsystem>
既存のエンドポイント設定の更新
/subsystem=remoting/configuration=endpoint:write-attribute(name=authentication-retries,value=2)
/subsystem=remoting/configuration=endpoint:write-attribute(name=authentication-retries,value=2)
reload
reload
新規エンドポイント設定の作成
/subsystem=remoting/configuration=endpoint:add
/subsystem=remoting/configuration=endpoint:add
エンドポイント設定の削除
/subsystem=remoting/configuration=endpoint:remove
/subsystem=remoting/configuration=endpoint:remove
reload
reload
エンドポイント設定で使用できる属性の完全リストは、「エンドポイントの設定」を参照してください。
17.3. コネクターの設定 リンクのコピーリンクがクリップボードにコピーされました!
コネクターはリモーティングに関する主な設定要素で、追加設定のサブ要素が複数含まれます。
既存のコネクター設定の更新
/subsystem=remoting/connector=new-connector:write-attribute(name=socket-binding,value=my-socket-binding)
/subsystem=remoting/connector=new-connector:write-attribute(name=socket-binding,value=my-socket-binding)
reload
reload
新規コネクターの作成
/subsystem=remoting/connector=new-connector:add(socket-binding=my-socket-binding)
/subsystem=remoting/connector=new-connector:add(socket-binding=my-socket-binding)
コネクターの削除
/subsystem=remoting/connector=new-connector:remove
/subsystem=remoting/connector=new-connector:remove
reload
reload
コネクターの設定に使用できる属性の完全リストは「Remoting サブシステムの属性」の項を参照してください。
17.4. HTTP コネクターの設定 リンクのコピーリンクがクリップボードにコピーされました!
HTTP コネクターは、HTTP アップグレードベースのリモーティングコネクターの設定を提供します。JBoss EAP はデフォルトで次の http-connector 設定を提供します。
<subsystem xmlns="urn:jboss:domain:remoting:4.0">
...
<http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
</subsystem>
<subsystem xmlns="urn:jboss:domain:remoting:4.0">
...
<http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
</subsystem>
デフォルトでは、この HTTP コネクターは undertow サブシステムに設定される default という名前の HTTP リスナーに接続します。詳細は、「Web サーバーの設定 (Undertow)」を参照してください。
既存の HTTP コネクター設定の更新
/subsystem=remoting/http-connector=new-connector:write-attribute(name=connector-ref,value=new-connector-ref)
/subsystem=remoting/http-connector=new-connector:write-attribute(name=connector-ref,value=new-connector-ref)
reload
reload
新規 HTTP コネクターの作成
/subsystem=remoting/http-connector=new-connector:add(connector-ref=default)
/subsystem=remoting/http-connector=new-connector:add(connector-ref=default)
HTTP コネクターの削除
/subsystem=remoting/http-connector=new-connector:remove
/subsystem=remoting/http-connector=new-connector:remove
HTTP コネクターの設定に使用できる属性の完全リストは、「コネクターの属性」を参照してください。
17.5. アウトバウンド接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
アウトバウンド接続は、URI によって完全に指定される汎用のリモーティングアウトバウンド接続です。
既存のアウトバウンド接続の更新
/subsystem=remoting/outbound-connection=new-outbound-connection:write-attribute(name=uri,value=http://example.com)
/subsystem=remoting/outbound-connection=new-outbound-connection:write-attribute(name=uri,value=http://example.com)
新規アウトバウンド接続の作成
/subsystem=remoting/outbound-connection=new-outbound-connection:add(uri=http://example.com)
/subsystem=remoting/outbound-connection=new-outbound-connection:add(uri=http://example.com)
アウトバウンド接続の削除
/subsystem=remoting/outbound-connection=new-outbound-connection:remove
/subsystem=remoting/outbound-connection=new-outbound-connection:remove
アウトバウンド接続の設定に使用できる属性の完全リストは、「アウトバウンド接続の属性」を参照してください。
17.6. リモートアウトバウンド接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
リモートアウトバウンド接続は、プロトコル、アウトバウンドソケットバインディング、ユーザー名、およびセキュリティーレルムによって指定されます。プロトコルは remote、http-remoting、https-remoting のいずれかになります。
既存のリモートアウトバウンド接続の更新
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:write-attribute(name=outbound-socket-binding-ref,value=outbound-socket-binding)
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:write-attribute(name=outbound-socket-binding-ref,value=outbound-socket-binding)
新規リモートアウトバウンド接続の作成
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:add(outbound-socket-binding-ref=outbound-socket-binding)
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:add(outbound-socket-binding-ref=outbound-socket-binding)
リモートアウトバウント接続の削除
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:remove
/subsystem=remoting/remote-outbound-connection=new-remote-outbound-connection:remove
リモートアウトバウンド接続の設定に使用できる属性の完全リストは、「リモートアウトバウンド接続の属性」を参照してください。
17.7. ローカルアウトバウンド接続の設定 リンクのコピーリンクがクリップボードにコピーされました!
ローカルアウトバウンド接続はプロトコルが local のリモーティングアウトバウンド接続で、アウトバウントソケットバインディングのみによって指定されます。
既存のローカルアウトバウンド接続の更新
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:write-attribute(name=outbound-socket-binding-ref,value=outbound-socket-binding)
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:write-attribute(name=outbound-socket-binding-ref,value=outbound-socket-binding)
新規ローカルアウトバウンド接続の作成
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:add(outbound-socket-binding-ref=outbound-socket-binding)
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:add(outbound-socket-binding-ref=outbound-socket-binding)
ローカルアウトバウンド接続の削除
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:remove
/subsystem=remoting/local-outbound-connection=new-local-outbound-connection:remove
ローカルアウトバウンド接続の設定に使用できる属性の完全リストは、「ローカルアウトバウンド接続の属性」を参照してください。
17.8. リモーティングの追加設定 リンクのコピーリンクがクリップボードにコピーされました!
remoting サブシステム外部に接続されるリモーティング要素が複数あります。
- IO ワーカー
以下のコマンドを使用してリモーティングの IO ワーカーを設定します。
/subsystem=remoting/configuration=endpoint:write-attribute(name=worker, value=WORKER_NAME)
/subsystem=remoting/configuration=endpoint:write-attribute(name=worker, value=WORKER_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow IO ワーカーの設定方法に関する詳細は「ワーカーの設定」を参照してください。
- ネットワークインターフェース
remotingサブシステムによって使用されるネットワークインターフェースはpublicインターフェースです。このインターフェースは他のサブシステムによっても使用されるため、変更する場合は十分注意してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理対象ドメインでは、
publicインターフェースはホストごとにhost.xmlファイルで定義されます。- ソケットバインディング
remotingサブシステムによって使用されるデフォルトのソケットバインディングはポート8080にバインドされます。ソケットバインディングおよびソケットバインディンググループの詳細は、「ソケットバインディング」を参照してください。
- EJB の リモーティングコネクター参照
ejb3サブシステムにはリモートメソッド呼び出しに対するリモーティングコネクターへの参照が含まれています。デフォルト設定は次のとおりです。<remote connector-ref="remoting-connector" thread-pool-name="default"/>
<remote connector-ref="remoting-connector" thread-pool-name="default"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - セキュアなトランスポート設定
リモーティングトランスポートはクライアントの要求があれば STARTTLS を使用してセキュアな接続 (HTTPS、Secure Servlet など) を使用します。セキュアな接続とセキュアでない接続の両方で同じソケットバインディングまたはネットワークポートが使用されるため、サーバー側に追加の設定をする必要はありません。クライアントは必要に応じてセキュアなトランスポートまたはセキュアでないトランスポートを要求します。EJB、ORB、JMS プロバイダーなどのリモーティングを使用する JBoss EAP のコンポーネントはデフォルトでセキュアなインターフェースを使用します。
警告STARTTLS はクライアントの要求があればセキュアな接続を有効にしますが、セキュアでない接続がデフォルトになります。本質的に、StartTLS は攻撃者がクライアントの要求を妨害し、要求を編集してセキュアでない接続を要求する中間者攻撃の対象になりやすい欠点があります。セキュアでない接続が適切なフォールバックである場合を除き、クライアントがセキュアな接続を取得できなかったときに適切に失敗するよう記述する必要があります。