20.1.3 インスタンス・セキュリティの管理
Oracle APEXインスタンスを管理する場合のセキュリティに関するベスト・プラクティスについて説明します。
ノート:
開発環境のセキュリティとパフォーマンスを確保するために、この機能はOracle Cloudで実行されているOracle APEXインスタンスでは使用できません。- ログイン制御の作成について
管理者は、インスタンス全体に対して、または個々のワークスペースにログイン制御を構成できます。 - パブリック・ファイルのアップロードの有効化について
管理者は、「パブリック・ファイルのアップロードを許可」属性を使用して、認証されていないユーザーがファイルのアップロード機能を提供するアプリケーションでファイルをアップロードできるかどうかを制御できます - IPアドレスによるユーザー・アクセスの制限について
管理者は、「インスタンスの管理」の「セキュリティ」ページで「IPアドレス別にアクセスを制限」属性に、許容されるIPアドレスのカンマ区切りリストを入力して、APEXインスタンスへのユーザー・アクセスを制限できます。 - インスタンス・プロキシの指定について
管理者は、「インスタンス・プロキシ」属性を使用して、すべてのアウトバウンドHTTPトラフィックにプロキシを使用するようにAPEXインスタンス全体を構成できます。 - Secure Sockets Layerの使用について
Secure Sockets Layer (SSL)は、インターネット上に転送されるデータのセキュリティを管理するためのプロトコルです。SSLは、HTTPSプロトコルを使用してWebアプリケーションに実装されます。機密データが暗号化されていない(クリアテキストの)通信チャネルで送信されないように、SSL (HTTPSプロトコル)を使用してAPEXアプリケーションを実行することをお薦めします。 - RESTfulアクセスの有効化について
管理者は、「RESTfulアクセスを許可」属性を使用して、開発者がレポート・リージョンをRESTfulサービスとして公開できるかどうかを制御できます。 - 「セッションを再結合」について
「セッションを再結合」属性を使用して、APEXでセッションIDが含まれないアプリケーションURLをサポートするかどうかを制御します。 - ワークスペースの分離について
ワークスペースの分離は、ブラウザ攻撃を防ぐ効果的な方法です。 - セッション・タイムアウトの使用について
「セッション・タイムアウト」属性を構成して、アプリケーションの公開を抑制します。 - パスワードの再利用の制限
サイト管理者は、すべての管理者アカウント、開発者アカウントおよびエンド・ユーザー・アカウントに対し、そのアカウントに以前使用されたパスワードの履歴に基づいて、パスワードの再利用を制限することができます。 - RESTfulサービスの有効化について
管理者は、ワークスペース・レベルまたはインスタンス・レベルでRESTfulサービスを作成してアクセスする機能を制御できます。
関連項目:
『Oracle APEX管理ガイド』のセキュリティの構成
親トピック: セキュリティに関する管理者のベスト・プラクティスの理解
20.1.3.1 ログイン制御の作成について
管理者は、インスタンス全体に対して、または個々のワークスペースにログイン制御を構成できます。
ワークスペースの管理者および開発者は、APEXの開発環境にログインし、ワークスペース内で開発されたアプリケーションに対するエンド・ユーザーの認証を行うためのユーザー・アカウントを作成できます。
管理者は、インスタンス・レベルまたはワークスペースレベルでログイン制御を構成できます。たとえば、インスタンス管理者がAPEX管理サービスでアカウント・ログイン制御を構成した場合、その構成は開発インスタンス全体ですべてのワークスペースの全APEXアカウントに適用されます。
インスタンス管理者がインスタンス全体でログイン制御を有効にしない場合は、各ワークスペース管理者がワークスペースごとに次の制御を有効にできます。
- エンド・ユーザーのアカウント有効期限およびロック。
- エンド・ユーザー・アカウントへのログイン試行失敗の最大回数。
- パスワード存続期間(つまりエンド・ユーザー・アカウントのパスワードを使用できる期限が切れるまでの残りの日数)。
関連項目:
『Oracle APEX管理ガイド』のワークスペースのアカウント・ログイン制御の管理およびインスタンスの認証制御の構成
親トピック: インスタンス・セキュリティの管理
20.1.3.2 パブリック・ファイルのアップロードの有効化について
管理者は、「パブリック・ファイルのアップロードを許可」属性を使用して、認証されていないユーザーがファイルのアップロード機能を提供するアプリケーションでファイルをアップロードできるかどうかを制御できます
関連項目:
『Oracle APEX管理ガイド』のパブリック・ファイルのアップロードの制御
親トピック: インスタンス・セキュリティの管理
20.1.3.3 IPアドレスによるユーザー・アクセスの制限について
管理者は、「インスタンスの管理」の「セキュリティ」ページで「IPアドレス別にアクセスを制限」属性に、許容されるIPアドレスのカンマ区切りリストを入力して、APEXインスタンスへのユーザー・アクセスを制限できます。
関連項目:
『Oracle APEX管理ガイド』のIPアドレスによるユーザー・アクセスの制限
親トピック: インスタンス・セキュリティの管理
20.1.3.4 インスタンス・プロキシの指定について
管理者は、「インスタンス・プロキシ」属性を使用して、すべてのアウトバウンドHTTPトラフィックにプロキシを使用するようにAPEXインスタンス全体を構成できます。
インスタンス・レベルでのプロキシの設定は、アプリケーション・レベルまたはWebサービス参照で定義されているすべてのプロキシより優先されます。プロキシが指定されている場合、URLタイプのリージョン、Webサービスおよびレポート出力で、そのプロキシが使用されます。
関連項目:
『Oracle APEX管理ガイド』のインスタンスに対するプロキシ・サーバーの構成
親トピック: インスタンス・セキュリティの管理
20.1.3.5 Secure Sockets Layerの使用について
Secure Sockets Layer(SSL)は、インターネット上に転送されるデータのセキュリティを管理するためのプロトコルです。SSLは、HTTPSプロトコルを使用してWebアプリケーションに実装されます。機密データが暗号化されていない(クリアテキストの)通信チャネルで送信されないように、SSL (HTTPSプロトコル)を使用してAPEXアプリケーションを実行することをお薦めします。
インスタンス管理者は、「HTTPSが必要」属性および「アウトバウンドHTTPSが必要」属性を構成することで、APEXインスタンスとすべての関連アプリケーションのいずれもHTTPSを要求するように構成できます。これらの属性を構成すると、アプリケーション・ビルダー内の認証済ページでは、ネットワーク通信を暗号化するHTTPSを要求することが強制されます。「HTTPSが必要」オプションを変更しても、Webサーバーにはまったく影響しません。これらのオプションが意味を持つためには、HTTPSに対してWebサーバーを有効化する必要があります。HTTPSの有効化についてさらに学習するには、使用する特定のWebサーバーのドキュメントを参照してください。
「HTTPSが必要」オプションは次のとおりです。
- 常時: すべてのアプリケーション(APEX開発および管理アプリケーションを含む)でHTTPSを要求するように、HTTPSを強制します。
- 開発と管理: APEX内のすべての内部アプリケーション(つまり、アプリケーション・ビルダー、SQLワークショップ、インスタンス管理など)にHTTPSを要求するように強制します。
- アプリケーション固有 - HTTPSをアプリケーション・レベル設定依存にします。
関連項目:
『Oracle APEX管理ガイド』のHTTPプロトコルの属性の構成
親トピック: インスタンス・セキュリティの管理
20.1.3.6 RESTfulアクセスの有効化について
管理者は、「RESTfulアクセスを許可」属性を使用して、開発者がレポート・リージョンをRESTfulサービスとして公開できるかどうかを制御できます。
関連項目:
Oracle APEX管理ガイドのインスタンスのRESTfulサービスの有効化
親トピック: インスタンス・セキュリティの管理
20.1.3.7 「セッションを再結合」について
「セッションを再結合」属性を使用して、APEXでセッションIDが含まれないアプリケーションURLをサポートするかどうかを制御します。
ヒント:
セキュリティ上の理由から、管理者は、ワークスペース・レベルまたはインスタンス・レベルで「ホスト名の許可」属性を構成してワークスペース分離を実装する場合を除いて、「セッションを再結合」を無効にすることをお薦めします。「ワークスペースの分離について」を参照してください。
「セッションを再結合」が有効で、URLにセッションIDが含まれていない場合、APEXはセッションCookieを使用して既存のセッションを結合しようと試みます。「セッションを再結合」を使用するには、管理者はアプリケーション・レベルまたはページ・レベルで「セッションを再結合」を有効にする必要があります。「セッションを再結合」にインスタンス・レベルでより制限の多い値が設定されている場合、これによりアプリケーションおよびページ設定が上書きされます。
セッション結合のサポートは便利ですが、複数の重大なセキュリティ・リスクが存在します。
-
セッション・ステートの悪意のある変更または他の変更のトリガー。
攻撃者がユーザーにアプリケーション・リンクをクリックさせた場合に、セッション・ステートの悪意のある変更または他の変更がトリガーされる可能性があります。このリスクのため、APEXには、データの変更を伴うリクエスト処理のタイミングを攻撃者が推測できないチェックサムが必要です。
-
アプリケーション間の予期しない変更のトリガー。
ユーザーが同じAPEXインスタンスの別個のタブで2つのアプリケーションを開いている場合、一方のアプリケーションが他方のアプリケーションで予期しない変更をトリガーする可能性があります。攻撃側のアプリケーションはハッカーによって作成されたか、攻撃者にコードの挿入を可能にするXSS脆弱性がある場合があります。このアプリケーションは、他のアプリケーションとのユーザーの相互作用をシミュレートするAjaxコールを使用することがあります。
関連項目:
- ブックマークのサポートの有効化について
- セッション管理
- ページへのセッション再結合の構成
- 『Oracle APEX管理ガイド』のインスタンスに対するセッションの再結合の構成
親トピック: インスタンス・セキュリティの管理
20.1.3.8 ワークスペースの分離について
ワークスペースの分離は、ブラウザ攻撃を防ぐ効果的な方法です。
ワークスペースを適切に分離する唯一の方法は、APEX管理サービスで「ホスト名の許可」属性を構成して、URLで異なるドメインを強制することです。攻撃者と攻撃を受ける側のURLでドメインとホスト名が異なる場合、ブラウザの同一起点ポリシーによって攻撃が回避されます。
「ホスト名の許可」の構成によるワークスペースの分離は、ワークスペースの境界を越えようとするクライアント側攻撃への対策となります。このセキュリティ対策は、他のフレームワークおよび言語(Oracle Application Development Framework (ADF)やJavaなど)で作成されたアプリケーションを含むインスタンスのホストを使用してアクセスできるすべてのアプリケーションを信頼できる場合は、必要ありません。
関連項目:
- Oracle APEX管理ガイドのインスタンスのすべてのワークスペースの分離
- Oracle APEX管理ガイドのブラウザ攻撃を防ぐためのワークスペースの分離
親トピック: インスタンス・セキュリティの管理
20.1.3.9 セッション・タイムアウトの使用について
「セッション・タイムアウト」属性を構成して、アプリケーションの公開を抑制します。
ユーザーは、長時間コンピュータを操作しなかったり、アプリケーションを終了せずにコンピュータの元を離れることが頻繁にあります。このため、アプリケーションのユーザー・アイデンティティが、権限のないユーザーによって簡単に引き継がれる可能性があります。セッション・タイムアウトおよびアイドル・タイムアウトを設定すると、指定したタイムアウトの後、ユーザーは自動的にアプリケーションからログアウトされます。
「セッション・タイムアウト」属性には、次のものがあります。
- 最大セッションの長さ
- 最大セッション・アイドル時間
- セッション・タイムアウト警告(秒)
- セッション・タイムアウトURL (アプリケーション・レベル設定)
- アイドル・タイムアウトURL (アプリケーション・レベル設定)
開発者は特定のアプリケーションのセッション・タイムアウトを構成でき、管理者はワークスペースまたはインスタンス全体のセッション・タイムアウトを構成できます。
関連項目:
- これらの属性をアプリケーションレベルで構成する方法は、「セッション管理」を参照してください。
- 『Oracle APEX管理ガイド』のワークスペースのセッション・タイムアウトの構成およびインスタンスのセッション・タイムアウトの構成
親トピック: インスタンス・セキュリティの管理
20.1.3.10 パスワードの再利用の制限
サイト管理者は、すべての管理者アカウント、開発者アカウントおよびエンド・ユーザー・アカウントに対し、そのアカウントに以前使用されたパスワードの履歴に基づいて、パスワードの再利用を制限することができます。
パスワードの再利用を制限するには:
関連項目:
- Oracle APEX APIリファレンスのSTRONG_PASSWORD_CHECKプロシージャ
- Oracle APEX APIリファレンスのSTRONG_PASSWORD_VALIDATIONファンクション
親トピック: インスタンス・セキュリティの管理
20.1.3.11 RESTfulサービスの有効化について
管理者は、ワークスペース・レベルまたはインスタンス・レベルでRESTfulサービスを作成してアクセスする機能を制御できます。
「RESTfulサービスを有効にする」属性を無効にすると、開発者は、Oracle REST Data Services 2.0以上とともに使用されるSQLおよびPL/SQLにマップされるRESTful Webサービスを作成および編集できなくなります。
「RESTfulサービスを有効にする」を構成するには:
- 「ワークスペース管理」で、APEXにサインインして、「管理」メニューをクリックします。「サービスの管理」→「ワークスペース・プリファレンスの設定」→「SQLワークショップ」を選択し、「RESTfulサービスを有効にする」属性を検索します。
- 「インスタンス管理」で、APEX管理サービスにサインインします。「インスタンスの設定」で、「機能構成」→「機能構成」をクリックします。「REST」タブで、「RESTfulサービスを有効にする」属性を検索します。
関連項目:
『Oracle APEX管理ガイド』のワークスペースのRESTfulサービスの有効化およびパス接頭辞の定義およびインスタンスのRESTfulサービスの有効化
親トピック: インスタンス・セキュリティの管理