3.4.1 サービスレベルのセキュリティ設定の構成

インスタンス管理者は、「インスタンスの管理」、「セキュリティ」、「セキュリティ設定」でサービスレベルのセキュリティ設定を構成できます。

ノート:

開発環境のセキュリティとパフォーマンスを確保するために、一部の管理機能はOracle Cloudで実行されているOracle APEXインスタンスでは使用できません。

3.4.1.1 ワークスペースCookieの制御

Oracle APEXが永続Cookieをブラウザに保存するかどうかを決定します

Oracle APEXでは、次の永続Cookieが使用されます。

  • ORA_WWV_REMEMBER_UN - 開発環境ログイン・ページでは、ワークスペースおよびユーザー名のデータがこのCookieに格納されます。これは、再度ログインする際に、これらの属性にデフォルト値を移入するために使用されます。
  • LOGIN_USERNAME_COOKIE - 顧客アプリケーション・ログイン・ページでは、このCookieを使用してユーザー名が格納されます。これは、顧客が再度ログインする際に、属性にデフォルト値を移入するために使用されます。
  • ORA_WWV_REMEMBER_LANG - 開発環境で言語選択を使用するときに、APEXでは言語および地域がこのCookieに格納されます。アプリケーションが次に使用されるときに、選択した言語で自動的にアプリケーションを表示するために使用されます。

システムでCookieをすでに受信している場合、ブラウザ・ツールまたはシステム・ユーティリティを使用してこれをディスクの永続位置から物理的に削除できます。

永続Cookieを保存するようにAPEXを構成するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「ワークスペースCookieの設定」で、次のいずれかを選択します。
    • はい - APEXで永続Cookieをブラウザに保存できます。

    • いいえ - このCookieが送信されないようにします。
  6. 「変更の適用」をクリックします。

3.4.1.2 永続認証の制御

永続認証が有効かどうかを制御します。永続認証を有効にすると、開発者が組込みAPIを使用して、ユーザーが資格証明を指定しなくてもアプリケーションに再ログインできるようにできます。

「永続認証の許可」オプションが「はい」に設定されている場合、Oracle APEXは次のような永続Cookieを送信します。

  • ハッシュ値を含む

  • 「永続認証の存続日数」で構成された存続期間が設定されます

  • データベースに格納されている値と比較するために読み取られます。

システムでCookieをすでに受信している場合、ブラウザ・ツールまたはシステム・ユーティリティを使用してこれをディスクの永続位置から物理的に削除できます。

永続認証を制御するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「永続認証の許可」に対して、次のいずれかを選択します。
    • はい - ログイン・ページのAPEX永続認証APIを有効にして、永続Cookieを送信します。

      追加の構成オプション「永続認証の存続日数」で、このCookieの存続期間を制御します。

    • いいえ - このインスタンスの永続認証が無効になります。
  6. 永続認証の存続日数 - ユーザーが資格証明を再入力せずに永続認証を使用してログインできる最大日数を入力します。
  7. 「変更の適用」をクリックします。

ノート:

システムがこのCookieを受信していた場合は、ブラウザのツールやシステム・ユーティリティを使用して、ディスク上の永続的な場所からこのCookieを物理的に削除できます。Cookieには、セッションCookieと同じ名前が付けられ、$Pという接尾辞が付けられます。これは、永続認証が有効な状態でアクセスしたアプリケーションごとに存在する可能性があります。

参照:

Oracle APEX APIリファレンスAPEX_AUTHENTICATION

3.4.1.3 管理サービスへのアクセスの無効化

ユーザーがOracle APEX管理サービスにログインできなくなります。

インスタンス管理者は、ユーザーが管理サービスにログインできないようにすることができます。本番環境で管理者によるログインを無効にすると、権限のないユーザーが管理サービスにアクセスしたり、他のユーザーのログイン資格証明が危険にさらされたりするのを防ぐことができます。

APEX管理サービスへのユーザー・アクセスを無効にするには:

  1. 管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「管理者ログインの無効化」で「はい」を選択します。

    ノート:

    「はい」を選択してサイン・アウトすると、管理サービスに他のユーザーがアクセスできなくなります。

  6. 「変更の適用」をクリックします。

3.4.1.4 Oracle APEX管理サービスへのアクセスの有効化

Oracle APEX管理サービスへのアクセスが無効になっている場合、インスタンス管理者は次のSQL文を実行して再び有効にできます。

管理サービスが無効になっている場合に、そのサービスへのユーザー・アクセスを有効にするには:

  1. Oracle SQL Developer Command Line (SQLcl)を起動し、SYSとしてOracle APEXがインストールされているデータベースに接続します。次に例を示します:
    • Windowsの場合:

      SYSTEM_DRIVE:\ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sql /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
  2. 次の文を実行します。
    ALTER SESSION SET CURRENT_SCHEMA = APEX_240100;
    
  3. 次の文を実行します。
    BEGIN
      APEX_INSTANCE_ADMIN.SET_PARAMETER('DISABLE_ADMIN_LOGIN', 'N');
      commit;
    END;
    /
    

3.4.1.5 ワークスペース・ログイン・アクセスの無効化

ワークスペース・ログインを無効化して、APEXへのユーザー・アクセスを制限します。本番環境でワークスペース・ログインを無効にすると、ユーザーはアプリケーション・ビルダーなどのAPEXアプリケーションを実行できなくなります。

内部ワークスペースへのユーザー・アクセスを無効にするには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「ワークスペース・ログインの無効化」で「はい」を選択します。

    「はい」を選択すると、ランタイムのみの環境が効果的に設定されますが、インスタンス管理者は引き続き管理サービスにサインインできます。本番環境で「はい」を選択すると、開発者はアプリケーションまたはデータを変更できなくなります。

  6. 「変更の適用」をクリックします。

3.4.1.6 アプリケーション・ログイン・アクセスの無効化

「アプリケーション・ログインの無効化」属性を構成することで、顧客が作成したすべてまたは特定のアプリケーションへのアクセスを制限します。

顧客が作成したアプリケーションへのユーザー・アクセスを無効にするには、次のようにします。

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「アプリケーション・ログインの無効化」を構成します。オプションは次のとおりです。
    • はい - 顧客が作成したすべてのアプリケーションへのログイン・アクセスを無効にします。

    • 特定のアプリケーションのみ - 指定されたアプリケーションに対するログイン・アクセスを無効にします。「無効なアプリケーション」に、アプリケーションIDのカンマ区切りリストを入力します。次に例を示します。

      100,101,102

    • いいえ - 顧客が作成したアプリケーションへのログイン・アクセスは無効になりません。「いいえ」がデフォルトの設定です。
  6. 「変更の適用」をクリックします。

3.4.1.7 パブリック・ファイルのアップロードの制御

「パブリック・ファイルのアップロードを許可」属性を使用して、認証されていないユーザーがファイルのアップロード制御を提供するアプリケーションでファイルをアップロードできるかどうかを制御します。

ファイルのアップロードを制御するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「パブリック・ファイルのアップロードを許可」で、次のいずれかを選択します。
    • はい - 認証されていないユーザーがファイルのアップロード制御を提供するアプリケーションでファイルをアップロードできるようにします。

    • いいえ - 認証されていないユーザーがファイルのアップロード制御を提供するアプリケーションでファイルをアップロードできないようにします。

  6. 「変更の適用」をクリックします。

3.4.1.8 インスタンスのAIサービスのサポートの管理

APEXインスタンスでAIサービスを有効または無効にするには、「インスタンスの設定」、「セキュリティ」の「AI有効」属性を使用します。

ノート:

ワークスペースまたはインスタンスレベルでAIサービスを有効にできます。ワークスペースのAIサービスを有効にするには、「既存のワークスペース情報の表示」を参照してください。

APEXインスタンスでAIサービスを管理するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「AI有効」から、次のいずれかを選択します:
    • はい - このAPEXインスタンスでAIサービスの使用を有効にします。
    • いいえ - このAPEXインスタンスでAIサービスの使用を無効にします。
  6. 「変更の適用」をクリックします。

参照:

『Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイド』「生成AIサービスの管理」

3.4.1.9 IPアドレスによるユーザー・アクセスの制限

使用可能なIPアドレスのカンマ区切りのリストを指定することで、APEX開発環境および管理サービスへのユーザー・アクセスを制限します。

IPアドレスでユーザー・アクセスを制限するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションを見つけて、次の属性を編集します。
    1. 管理者ログインの無効化 - 「いいえ」を選択します。
    2. IPアドレス別にアクセスを制限 - Oracle APEX開発環境および管理サービスへのアクセスを特定のIPアドレス範囲に制限するには、IPアドレスのカンマ区切りリストを入力します。

      必要に応じて、ワイルドカードとしてアスタリスク(*)を使用します。ただし、ワイルドカードの後ろに数値を追加して入力しないでください。たとえば、138.*.41.2は有効な値ではありません

      1つから4つのレベルのIPアドレスを入力できます。たとえば:

      141, 141.* ...
      192.128.23.1 ...
      
  5. 「変更の適用」をクリックします。

3.4.1.10 AIサービス用のアプリケーション・ビルダー・プロキシの構成

アプリケーション・ビルダーで生成AIサービスによって使用されるプロキシ・サーバーを指定します。

アプリケーション・ビルダーで生成AIサービスによって使用されるプロキシ・サーバーを指定するには。

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「AIサービス用のアプリケーション・ビルダー・プロキシ」から - アプリケーション・ビルダーで生成AIサービスによって使用されるプロキシ・サーバーを指定します。

    たとえば:

    http://www-proxy.example.com

    http://www-proxy.example.com:8080

    プロキシ・サーバーが構成されていない場合は、インスタンス・プロキシが使用されます。

  6. 「変更の適用」をクリックします。

参照:

『Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイド』「生成AIサービスの管理」

3.4.1.11 インスタンスに対するプロキシ・サーバーの構成

すべてのアウトバウンドHTTPトラフィックにプロキシを使用するようにAPEXインスタンス全体を構成します。

ノート:

開発環境のセキュリティとパフォーマンスを確保するために、この機能は、Oracle Cloudで実行されているOracle APEXインスタンスでは使用できません。

インスタンス・レベルでのプロキシの設定は、アプリケーション・レベルまたはWebサービス参照で定義されているすべてのプロキシより優先されます。プロキシが指定されている場合、URLタイプのリージョン、Webサービスおよびレポート出力で、そのプロキシが使用されます。

APEXインスタンスに対してプロキシを構成するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションを見つけて、次の属性を編集します。
    1. インスタンス・プロキシ - Oracle APEXインスタンスからのすべてのアウトバウンドHTTPトラフィックが特定のプロキシ・サーバーを使用するように指定するには、このフィールドにプロキシ・サーバーのアドレスおよびポートを入力します。
      たとえば、www-proxy.example.com:80のように指定します
    2. インスタンス・プロキシなしドメイン - インスタンス・プロキシを使用できないドメインのカンマ区切りリストを指定します。
  5. 「変更の適用」をクリックします。

3.4.1.12 チェックサム・ハッシュ関数の選択

APEXがチェックサムに一方向のハッシュ文字列を生成するときに使用するハッシュ関数を選択します。

「チェックサム・ハッシュ関数」属性を使用すると、最近の開発に対応して、新しい調査に基づいてアルゴリズムを切り替えることができます。「チェックサム・ハッシュ関数」属性を使用して、APEXがチェックサムに一方向のハッシュ文字列を生成するときに使用するハッシュ関数を選択します。この属性は、新しいアプリケーションでセキュリティ・ブックマーク・ハッシュ関数属性のデフォルト値にもなります。アプリケーションは、ブックマークのURLを定義するときにブックマーク・ハッシュ関数を使用します。

ヒント:

チェックサム・ハッシュ関数を変更しても、エンド・ユーザーが保存した既存のすべてのブックマークが無効になるため既存のアプリケーションに現在定義されているブックマーク・ハッシュ関数は変更されません。既存のアプリケーションに移動し、既存のブックマークを期限切れにしてから、ブックマーク・ハッシュ関数をチェックサム・ハッシュ関数に定義した値と同じ値に更新することをお薦めします。

チェックサム・ハッシュ関数を選択するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「チェックサム・ハッシュ関数」で、APEXがチェックサムに一方向のハッシュ文字列を生成するときに使用するハッシュ関数を選択します。

    「最もセキュア」では、使用できる最も安全なアルゴリズムが自動的に選択されます。したがって、これが推奨の設定です。Oracle Database 12c以降では、これはSHA-2、512ビットに評価され、Oracle Database 11gではSHA-1が最もセキュアなアルゴリズムです。MD5アルゴリズムは非推奨となったため、この設定は推奨されません。

  6. 「変更の適用」をクリックします。

3.4.1.13 インスタンスへのセッション再結合の構成

このアプリケーション内のURLにセッションIDを含めるかどうかを、アプリケーションレベルで制御します。

「セッションを再結合」属性を構成すると、インスタンス管理者はセッションIDを含むURLをAPEXでサポートするかどうかを制御できます。「セッションを再結合」が有効で、URLにセッションIDが含まれていない場合、APEXはセッションCookieを使用して既存のセッションを結合することを試みます。

セッション再結合をアプリケーションまたはページレベルで使用するには、管理者がセッション再結合をインスタンスレベルで有効化する必要があります。インスタンスレベルで指定したより制限的な設定は、アプリケーションおよびページの設定をオーバーライドします。

警告:

セキュリティ上の理由から、「ホスト名の許可」属性を構成してワークスペース分離を実装していないかぎり、管理者がセッション結合のサポートを無効にすることをお薦めします。ブラウザ攻撃を防ぐためのワークスペースの分離およびインスタンスのすべてのワークスペースの分離を参照してください。

ノート:

セッションの再結合を有効にすると、攻撃者が既存のエンド・ユーザー・セッションを乗っ取ることが可能になることで、アプリケーションのセキュリティが侵害される可能性があります。さらに学習するには、Oracle APEXアプリケーション・ビルダー・ユーザーズ・ガイドセッション再結合の概要を参照してください。

「セッションを再結合」を構成するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「セッションを再結合」から、次のオプションを選択します。
    • 無効 - URLにセッションIDが含まれていない場合、APEXは新しいセッションを作成します。
    • パブリック・セッションに対して有効 - URLがパブリック・ページのもので、セッションIDが含まれていない場合、APEXはそのアプリケーションに対して確立された既存のセッションCookieの利用を試みます。パブリック・ページと認証済ページの両方を持つアプリケーションの場合、エンド・ユーザーの認証後にセッションIDが定義されます。APEXは、セッションがまだ認証されていない場合にのみCookieを使用して結合します。
    • すべてのセッションに対して有効 - URLにセッションIDが含まれていない場合、次のいずれかの条件が満たされていれば、APEXはそのアプリケーションで設定されている既存のセッションCookieを使用しようとします。
      • セッション・ステート保護がそのアプリケーションに対して有効で、URLに有効なチェックサムが含まれています。パブリック・ブックマークの場合、最も制限的なアイテム・レベルの保護は「制限なし」または「チェックサムが必要 - アプリケーション・レベル」である必要があります。

      • URLにペイロードは含まれていません(リクエスト・パラメータ、クリア・キャッシュまたはデータ値ペア)。この設定には、アプリケーションで「フレームへの埋込み」が「同じ起点から許可」、または「拒否」に設定されている必要があります。

      「すべてのセッションに対して有効」には、「フレームへの埋込み」「同じ起点から許可」または「拒否」に設定されている必要があります。これはURLペイロードの条件に関連付けられませんが、セッション・ステート保護されるURLにも適用されます。

  6. 「変更の適用」をクリックします。

参照:

3.4.1.14 未処理のエラーの構成

Oracle APEXで未処理のエラーをどのように表示するかを制御します

ノート:

開発環境のセキュリティとパフォーマンスを確保するために、この機能は、Oracle Cloudで実行されているOracle APEXインスタンスでは使用できません。

Oracle APEXが処理中に未処理のエラーを確認した場合、アプリケーションのエンド・ユーザーに対してエラー・ページが表示されます。セキュリティ上の観点からは、これらのメッセージとエラー・コードはエンド・ユーザーに表示せず、HTTP 400(不正リクエスト)エラー・コードをクライアント・ブラウザに返すのみにすることをお薦めします。

未処理のエラーを構成するには:

  1. APEX管理サービスにサインインします。
  2. 「インスタンスの管理」をクリックします。
  3. 「インスタンスの設定」で、「セキュリティ」をクリックします。
  4. 「セキュリティ」セクションに移動します。
  5. 「未処理エラー」で、次のいずれかのオプションを選択します。
    • エラー・ページを表示 - これがデフォルトの動作です。アプリケーションのエラー処理によって処理されないエラーまたは例外がある場合には、特定のエラーとエラー・コードでエンド・ユーザーにエラー・ページが表示されます。

    • HTTP 400を返す - APEXエンジンが未処理のエラーを確認したとき、エンド・ユーザーのクライアント・ブラウザにHTTP 400ステータスを返します。

  6. 「変更の適用」をクリックします。