概要
Java Remote Method Invocation (Java RMI)を使用すると、Javaで分散アプリケーションを作成できます。
RMIでは、おそらく異なるホスト上にある、別のJava仮想マシン(JVM)上で実行しているリモートJavaオブジェクトのメソッドを呼び出すことができます。RMIは、オブジェクトの直列化を使用してパラメータを整列化および非整列化します。また、型を切り捨てないため、真のオブジェクト指向の多相性をサポートします。
RMIのセキュリティの推奨事項
RMIアプリケーションのセキュリティを向上させるには、次の推奨事項に従ってください。
- シリアライズ・フィルタリングを参照し、示されたベスト・プラクティスに従ってアプリケーションを保護します。
-
オプションで、クライアントまたはサーバーでRMIを使用するときには、セキュリティ・マネージャを実行できます。
警告:
セキュリティ・マネージャおよびそれに関連するAPIは非推奨であり、今後のリリースでは削除されます。セキュリティ・マネージャの代わりとなるものはありません。詳細および代替手段については、JEP 411を参照してください。 -
妥当なセキュリティ・ポリシーを設定します。たとえば、RMIで通信するホスト間のみに
SocketPermission
を付与して、listen、accept、connectおよびresolve動作を許可します。セキュリティ・ポリシーでAllPermission
は付与しません。Java Development Kitでのアクセス権およびデフォルトのPolicyの実装とポリシー・ファイルの構文を参照してください。 -
ローカル・ホストのJVM間の通信にのみRMIが使用されている場合は、通信をローカルに制限します。このためには、適切なソケット・アクセス権をセキュリティ・ポリシー・ファイルに指定します。または、RMIのAPIを直接使用してローカル・ホストのみに接続を制限できます。
RMISocketFactory
クラスを参照してください。 -
java.rmi.server.useCodebaseOnly
プロパティの値がTrueであることを確認します。デフォルトでは、java.rmi.server.useCodebaseOnly
プロパティはTrueに設定されています。このプロパティをFalseに設定すると、リモート・コードのローディングが有効になり、システムに対するセキュリティ・リスクのレベルが高まります。 -
Secure Sockets Layer (SSL)/Transport Layer Security (TLS)経由でRMIを実行し、サーバーとクライアントの両方の認証をリクエストします。これは、カスタム・ソケット・ファクトリを使用すれば可能です。アプリケーションで、リモート・オブジェクトをエクスポートし、必要なタイプのソケット(SSLソケットなど)を作成するカスタム・ソケット・ファクトリを使用できます。この手法を使用すると、アプリケーションはデフォルトのソケット通信のかわりに、SSLソケット通信を使用できます。次を参照してください。
ドキュメントのアクセシビリティについて
Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。
Oracle Supportへのアクセス
サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。
ダイバーシティ&インクルージョン
Oracleはダイバーシティ&インクルージョンに積極的に取り組んでいます。Oracleは、ソート・リーダーシップと革新性を高める社員の多様性を尊重し、その価値を重んじています。従業員、お客様、パートナー様にポジティブな影響をもたらすインクルーシブな文化を醸成する私たちのイニシアティブの一環として、製品やドキュメントからインセンシティブな用語を取り除くように努めています。また、Oracle製品および業界標準が進化する中、お客様の既存の技術との互換性を維持する必要性およびサービスの継続性確保の要求にも留意しています。このような技術的な制限により、当社のインセンシティブな用語を削除する取組みは継続中であり、時間と皆様のご協力が必要となります。
Java Platform, Standard Edition Javaリモート・メソッド呼び出しAPIガイド, リリース17
F47739-01
2021年9月
Copyright © 1993, 2021, Oracle and/or its affiliates.