Rich Internet Application の開発および配備 > Rich Internet Application 配備プロセス
このページでは、次のトピックについて説明します。
ユーザーがアプレットまたは Java Web Start アプリケーション (まとめて Rich Internet Application (RIA) と呼ばれる) を起動すると、その RIA の実行が許可されるかどうか、どのバージョンの JRE が使用されるか、またどのセキュリティープロンプトがユーザーに表示されるかを決めるために、いくつかのチェックが行われます。このトピックの目的は、それらのチェックについて説明し、それらの決定がどのように行われるかを示すことです。
次のフローチャートは、RIA の配備に使用されるプロセスの簡易版を示しています。
チャートの左側の列にあるノードは、ユーザーが RIA を起動したあとに行われる処理の概要を示しています。次の手順は、主要なプロセスを説明しています。RIA を実行するかブロックするかの決定が行われると、残りの手順はすべてスキップされます。
Java コンテンツのロードを開始します
ユーザーが、アプレットの含まれる HTML ページを開くか、Java Web Start アプリケーションを起動すると、そのコンテンツのロードが開始されます。インストールされている JRE がない場合、ブラウザは、プラグインが見つからず RIA が実行されないことをユーザーに通知します。
ブラウザプラグインが登録されていて、実行を許可されますか。
プラグインが登録され、有効になっていることを確認します。詳細は、「プラグイン処理」を参照してください。
この RIA 用のルールが存在しますか。
デプロイメントルールセットが存在する場合は、その RIA と一致するルールを探します。一致するルールが見つかった場合は、そのルールのアクションが実行されます。アクションが block
の場合、その RIA は実行されません。アクションが run
の場合、その RIA は実行を許可されます。ルールが見つからない場合、またはアクションが default
の場合、配備プロセスはフローチャートの次の手順に進みます。詳細は、「ルール処理」を参照してください。
JRE が期限切れになっているか、セキュリティーベースラインを下回っていますか。
RIA を実行するために有効な JRE がインストールされていることを確認します。そうでない場合は、JRE を更新するオプションがユーザーに表示されます。詳細は、「JRE のステータス」を参照してください。
RIA に有効な署名が含まれていますか。
RIA が署名されているかどうかを確認します。そうである場合は、その署名が有効であることを確認します。詳細は、「デジタル署名」を参照してください。
必要なセキュリティープロンプトはどれですか。
RIA と、Java コントロールパネル内のセキュリティーレベルの設定に基づいて、表示するセキュリティープロンプトを決めます。古い JRE がリクエストされる場合は、RIA の実行に使用される JRE を選択します。詳細は、「セキュリティープロンプト」を参照してください。
コンテンツのロードが開始されると、プラグイン処理では、「ブラウザプラグインが登録されていて、実行を許可されるか」という、配備プロセスの 2 番目の手順の質問に答えます。このプロセスは、図 1 の「プラグイン処理」ボックス (この手順のノードにつながっていて、そのノードの右側に表示されているもの) に示されています。
プラグインが登録されていない場合、ブラウザは、プラグインが見つからず RIA が実行されないことをユーザーに通知します。
プラグインが登録されている場合は、そのプラグインが無効になっているかどうかがデプロイメントプロパティーでチェックされます。さらに、ブラウザがそのプラグインを無効にしたかどうかもチェックされます。プラグインが無効になっている場合は、ユーザーに通知され、RIA は実行されません。プラグインが有効になっている場合、配備プロセスは「ルール処理」に進みます。Java Plug-in の無効化と有効化については、Java コントロールパネルの「セキュリティー」タブを参照してください。プラグインがブラウザによって無効にされた場合は、ブラウザのドキュメントを参照してください。
ルール処理では、「この RIA 用のルールは存在するか」という、配備プロセスの 3 番目の手順の質問に答えます。このプロセスは、図 1 の「ルール処理」ボックス (この手順のノードにつながっていて、そのノードの右側に表示されているもの) に示されています。ルール処理では、有効なデプロイメントルールセットファイルを検索します。この機能については、Java 7 update 40 で導入された「デプロイメントルールセット」を参照してください。
デプロイメントルールセットが見つからない場合、配備プロセスは「JRE のステータス」に進みます。
無効なデプロイメントルールセットが見つかった場合は、エラーメッセージがユーザーに表示され、RIA がブロックされます。
有効なデプロイメントルールセットが見つかった場合は、次のいずれかのアクションが実行されます。
RIA と一致するルールがない場合、配備プロセスは「JRE のステータス」に進みます。
RIA が 1 つのルールと一致する場合は、次のいずれかのアクションが実行されます。
そのルールが RIA の実行を許可する場合は、RIA の署名がチェックされます。署名が有効な場合、または RIA が署名されていない場合、RIA はセキュリティープロンプトを表示せずに、リクエストされた JRE バージョンで実行されます。RIA の署名が有効でない場合は、セキュリティー警告がユーザーに表示され、RIA がブロックされます。
ルール処理では、有効期限が切れている証明書または証明書失効ステータスをチェックできない証明書を含む署名は有効と見なされ、RIA は実行されます。無効な署名とは、ブラックリストに登録されている、失効している、または何らかの方法で不正な形式にされた証明書を含むものです。
そのルールが RIA をブロックする場合は、セキュリティー警告がユーザーに表示され、RIA がブロックされます。
そのルールが RIA のデフォルトの処理をリクエストする場合、配備プロセスは「デジタル署名」に進みます。
JRE のステータス処理では、「JRE が期限切れになっているか、セキュリティーベースラインを下回っているか」という、配備プロセスの 4 番目の手順の質問に答えます。このプロセスは、図 1 の「JRE のステータス」ボックス (この手順のノードにつながっていて、そのノードの右側に表示されているもの) に示されています。セキュリティーベースラインを無視するためのオプションが設定されている場合、JRE のステータスはチェックされず、配備プロセスは「デジタル署名」に進みます。デプロイメントプロパティー deployment.expiration.check.enabled
を使用すると、セキュリティーベースラインが無視されるかどうかを確認できます。このプロパティーの詳細は、「デプロイメント構成ファイルおよびプロパティー」を参照してください。
セキュリティーベースラインが無視されない場合は、JRE が期限切れになっているか、セキュリティーベースラインを下回っているかがチェックされます。どちらの条件にも当てはまらない場合、配備プロセスは「デジタル署名」に進みます。JRE の有効期限については、「Java クライアントのセキュリティーレベルの設定」を参照してください。セキュリティーベースラインについては、使用している JDK バージョンの「Update Release Notes」を参照してください。
JRE が期限切れになっているか、セキュリティーベースラインを下回っている場合は、JRE を更新するオプションがユーザーに表示されます。ユーザーの選択に応じて、次のいずれかのアクションが実行されます。
デジタル署名処理では、「RIA に有効な署名が含まれているか」という、配備プロセスの 5 番目の手順の質問に答えます。このプロセスは、図 1 の「デジタル署名」ボックス (この手順のノードにつながっていて、そのノードの右側に表示されているもの) に示されています。RIA が署名されていない場合、配備プロセスは「セキュリティープロンプト」に進みます。
RIA が署名されている場合は、RIA の署名に使用された証明書が検証されます。その証明書が無効または失効している場合、RIA はブロックされます。
RIA が有効な証明書で署名されている場合、またはその証明書の有効期限が切れているか、失効ステータスをチェックできない場合、配備プロセスは「セキュリティープロンプト」に進みます。有効期限が切れた証明書またはチェックできない証明書を含む RIA に対して実行されるアクションは、Java コントロールパネルの「セキュリティーレベル」スライダの設定によって決まります。
デジタル署名については、「Signing and Verifying JAR Files」を参照してください。
配備プロセスの最後の手順は RIA が実行されるかどうかを判断するもので、「必要なセキュリティープロンプトはどれか」という、配備プロセスの最後の手順の質問に答えます。RIA が実行される場合、この手順では、古いバージョンがリクエストされたときに使用される JRE のバージョンも判断します。図 1 の「セキュリティーベースライン以上にある JRE」ボックスおよび「セキュリティーベースラインを下回る JRE」ボックスは、RIA が実行されるかどうかと、どのセキュリティープロンプトが表示されるかを判断するプロセスを示しています。これらのボックスは、この手順のノードにつながっていて、そのノードの右側に表示されています。
古いバージョンがリクエストされたときに使用される JRE を判断するプロセスは、図 1 の「JRE の選択」ボックス (RIA が実行されるかどうかと、どのセキュリティープロンプトが表示されるかを判断するためのボックスにつながっているもの) に示されています。
プロセスのこの時点では、RIA を実行するかブロックするかの決定、および表示するセキュリティープロンプトの選択は、次の基準に基づいています。
高
」です。「セキュリティーレベル」スライダについては、Java コントロールパネルの「セキュリティー」タブを参照してください。
注: 次回からプロンプトを表示しないオプションを以前にユーザーが選択していた場合、そのプロンプトは抑止されます。次回からプロンプトを表示する代わりに、抑止するオプションの選択時にユーザーが行なった応答が使用されます。
次の表に、JRE がセキュリティーベースライン以上にあるか、セキュリティーベースラインを無視するためのデプロイメントプロパティーが true に設定されている場合に、RIA が実行されるかブロックされるかを示します。
セキュリティーレベル | プロンプトを表示して実行 | ブロック |
---|---|---|
非常に高 |
有効な証明書で署名されている RIA のみが実行を許可されます。 |
次の RIA がブロックされます。
|
高 |
すべての RIA の実行が許可されます。 |
ローカルのもの。 |
中 |
すべての RIA の実行が許可されます。 |
ブロックされる RIA はありません。 |
RIA の実行が許可され、古いバージョンの JRE がリクエストされた場合、配備プロセスは「JRE の選択」に進みます。
次の表に、JRE がセキュリティーベースラインを下回っている場合に、RIA が実行されるかブロックされるかを示します。
セキュリティーレベル | プロンプトを表示して実行 | ブロック |
---|---|---|
非常に高 |
有効な証明書で署名されている RIA のみが実行を許可されます。 |
次の RIA がブロックされます。
|
高 |
次の RIA の実行が許可されます。
|
署名なし、自己署名付き、およびローカルの RIA はブロックされます。 |
中 |
すべての RIA の実行が許可されます。 |
ブロックされる RIA はありません。 |
RIA の実行が許可され、古いバージョンの JRE がリクエストされた場合、配備プロセスは「JRE の選択」に進みます。
常に最新バージョンの JRE を使用することをお勧めします。ただし、RIA がこのバージョンの JRE と互換性がない場合は、その RIA の実行に必要なバージョンを、JNLP ファイルや APPLET タグでリクエストできます。
古いバージョンがリクエストされた場合は、以降のセクションで説明されている基準に基づいて、次のいずれかのアクションが実行されます。
次の条件が満たされた場合は、SSV を使用して、リクエストされた JRE バージョンで RIA が再起動されます。
次の表では、リクエストされたバージョンではなく、インストールされている最新の JRE バージョンで RIA が実行されるケースについて説明します。
署名ステータス | リクエストされたバージョンがインストールされている | RIA の種類 | プロンプトへの応答 |
---|---|---|---|
署名付き | はい | サンドボックス、自己署名付き | ユーザーはリクエストされたバージョンでの実行に同意しない |
署名付き | いいえ | すべて | ユーザーはインストールされている最新バージョンでの実行に同意する |
署名なし | 無視される | すべて | ユーザーはインストールされている最新バージョンでの実行に同意する |
ユーザーがインストールされている最新の JRE バージョンでの実行に同意しないときは、次の場合に RIA がブロックされます。