前へ
前へ
 
次へ
次へ

セキュリティ属性の構成

アプリケーションに対するセキュリティを提供するには、「セキュリティ属性の編集」ページで属性を編集します。選択したセキュリティ属性は、アプリケーション内のすべてのページに適用されます。

トピック:

セキュリティ属性の編集ページへのアクセス

セキュリティ属性の編集ページにアクセスするには、次のステップを実行します。

  1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

  2. アプリケーションを選択します。

  3. 「共有コンポーネント」をクリックします。

    共有コンポーネント・ページが表示されます。

  4. 「セキュリティ」で、「セキュリティ属性の編集」をクリックします。

セキュリティ属性の編集ページが表示されます。

ナビゲーションの選択肢について

セキュリティ属性の編集ページは、「認証」、「認可」、「データベース・スキーマ」、「セッション・ステート保護」および「仮想プライベート・データベース」の各セクションに分かれています。これらのセクションには、ページをスクロール・ダウンするか、ページ上部のナビゲーション・ボタンをクリックしてアクセスできます。

図sec_attribute_tabs.gifの説明が続きます
図sec_attribute_tabs.gifの説明

ページ上部のボタンを選択すると、選択されたセクションが表示され、その他のセクションはすべて一時的に非表示になります。ページのすべてのセクションを表示するには、「すべて表示」をクリックします。

セキュリティ属性ページについて

次のセクションでは、セキュリティ属性の編集ページで使用可能な属性について説明します。

トピック:

認証

認証は、ユーザーがアプリケーションにアクセスする前に、そのユーザーのアイデンティティを証明するプロセスです。アプリケーションに対して複数の認証スキームを定義しても、一度に現行スキームに設定できるのは1つだけです。表「認証属性」に、認証で使用可能な属性を示します。

認証属性

属性 説明

ホーム・リンク

URL、またはアプリケーションを実行するときに実行されるプロシージャを指定します。

たとえば、「ホーム・リンク」には、アプリケーションのホームページの位置を特定するために使用される相対URLを含めることができます。たとえば、f?p=6000:600は、ホームページ番号600を持つアプリケーション6000を指定します。この例では、アプリケーション・テンプレート内の#HOME_LINK#置換文字列は、「ホーム・リンク」に入力した値で置き換えられます。

この属性を使用してプロシージャに名前を付けることもできます。たとえば、アプリケーション・ホームとして機能するHTMLページをレンダリングするpersonal_calendarなどのプロシージャを作成できます。

注意: 認証後に表示されるページを決定するために「ホーム・リンク」属性は使用しないでください。認証後に表示されるページは、アプリケーションの認証スキーム内の他のコンポーネントによって決定されます。

参照: 「HOME_LINK」

ログインURL

HTMLの&LOGIN_URLまたはテンプレート内の#LOGIN_URL#置換文字列と置き換えられます。

参照: 「LOGIN_URL」および「認証スキームの作成」

パブリック・ユーザー

データベース・アクセス記述子を介したデータベースへの接続に使用するOracleスキーマを示します。デフォルト値は、データベース・サーバーのバージョンがOracle Database Express Editionの環境ではANONYMOUS、その他すべてのバージョンのデータベース・サーバー環境ではAPEX_PUBLIC_USERです。

ユーザーの本人確認が行われると、Application Expressエンジンが組込み置換文字列APP_USERの値を設定して、各ユーザーを追跡します。

注意: 以前のバージョンのOracle Application Expressでは、組込み置換文字列HTMLDB_PUBLIC_USERが使用されていました。

APP_USERがこの値と等しいと、Application Expressエンジンはカレント・セッションをパブリック・ユーザー・セッションとみなします。Application Expressエンジンは、次の組込み表示条件をサポートしています。

  • USER_IS_PUBLIC_USER

  • USER_IS_NOT_PUBLIC_USER

カレント・アプリケーション・ユーザー(APP_USER)がこの属性の値と等しい場合、ユーザーはパブリック・ユーザーとしてログインされます。一部のアプリケーションには、パブリック・モード(ログインが不要)およびプライベート・モード(ログインが必要)があります。ユーザーがパブリック・ユーザーかどうかを判断して、条件付きで情報の表示と非表示を切り替えることができます。

たとえば、ユーザーがパブリック・ユーザーの場合はログイン・ボタンを表示し、ユーザーがパブリック・ユーザーでない場合にはログアウト・リンクを表示するように設定できます。この値を参照するには、APEX_APPLICATION.G_PUBLIC_USERを使用します。また、Application Expressエンジンには、組込み条件タイプUSER_IS_PUBLIC_USERおよびUSER_IS_NOT_PUBLICもあります。

参照: 「HOME_LINK」および「条件付きのレンダリングおよびプロセスの理解」

「認証スキーム」の定義

認証スキームを定義するには、このボタンをクリックします。

参照: 「認証の仕組みの理解」および「認証スキームの作成」


認可

認可は、ユーザー権限に基づいて、特定のコントロールまたはコンポーネントへのユーザーのアクセスを制御します。「認可スキーム」リストから選択して、アプリケーションの認可スキームを指定できます。アプリケーション全体に割り当てることができる認可は1つのみです。ただし、認可スキームは、個々のページ、ページ・コントロール(リージョン、ボタン、アイテムなど)または共有コンポーネント(メニュー、リスト、タブなど)に割り当てることができます。

認可スキームを作成するには、「認可スキームの定義」をクリックします。

認可スキームはバイナリ操作で、結果は成功(true)または失敗(false)のいずれかになります。成功するとコンポーネントやコントロールを表示できますが、失敗するとコンポーネントやコントロールの表示または処理のいずれも行うことはできません。認可スキームをページに割り当てることに失敗すると、そのページではなくエラー・メッセージが表示されます。ただし、認可スキームをページ・コントロール(リージョン、ボタン、アイテムなど)に割り当てる場合は、失敗してもエラー・ページは表示されません。かわりに、コントロールが表示されないか、またはその処理や実行が行われません。

データベース・スキーマ

カレント・アプリケーションのデータベース・スキーマを指定するには、解析対象スキーマを使用します。定義後は、アプリケーションによって発行されるすべてのSQLおよびPL/SQLコマンドが、定義したデータベース・スキーマの権限で実行されます。

セッション・タイムアウト

オープンWebブラウザで、取り消されたコンピュータにアプリケーションが公開される時間を短くするには、次の属性を使用します。

  • 最大セッションの長さ: このアプリケーションが使用するセッションが何秒間存在するかを示す正の整数を入力します。値をNULLのままにすると、セッションが無期限に存在します。このセッション継続時間は、8時間ごとに実行され、24時間より前から存在するセッションを削除するジョブの操作によって破棄されます。

  • セッション・タイムアウトURL: 「最大セッションの長さ」を超えた場合にリダイレクト先となるオプションのURLを入力します。Oracle Application Expressに実装されている場合は、このURLのターゲット・ページが公開ページになります。このページの一般的な用途は、ユーザーにセッションの有効期間を知らせ、ログイン・リンクや他のオプションを表示することです。URLを指定しない場合、リダイレクト先はアプリケーションのホームページになります。

  • 最大セッション・アイドル時間: このアプリケーションが使用するセッションで、何秒間の停止時間またはアイドル時間を許可するかを示す正の整数を入力します。アイドル時間は、あるページ・リクエストと次のページ・リクエストとの間の時間です。値をNULLのままにすると、セッションのアイドル時間のチェックは行われません。

  • アイドル・タイムアウトURL: 「最大セッション・アイドル時間」を超えた場合にリダイレクト先となるオプションのURLを入力します。Oracle Application Expressに実装されている場合は、このURLのターゲット・ページが公開ページになります。このページの一般的な用途は、ユーザーにセッションがアプリケーションのホームページにリダイレクトされることを知らせることです。URLを指定しない場合、リダイレクト先はアプリケーションのホームページになります。


参照:

「セッション・タイムアウトの理解」およびOracle Application Express管理ガイドの「セッション・タイムアウトの構成」

セッション・ステート保護

セッション・ステート保護を有効にすると、ハッカーがアプリケーション内のURLを改ざんするのを防ぐことができます。URL改ざんにより、プログラム・ロジック、セッション・ステートの内容および情報プライバシが悪影響を受ける可能性があります。

アプリケーションのセッション・ステート保護を有効または無効にするには、「セッション・ステート保護」リストから選択します。セッション・ステート保護を有効に設定すると、ページおよびアイテム・レベルで定義されたセッション・ステート保護コントロールがオンになります。

セッション・ステート保護を構成するには、「セッション・ステート保護の管理」をクリックします。

仮想プライベート・データベース(VPD)

この属性を使用して、現在の「ページの表示」または「ページの受入れ」リクエストに関連付けられた現在のデータベース・セッションに対して仮想プライベート・データベース(VPD)のコンテキストを設定するPL/SQLブロックを入力します。ここに入力したブロックは、ページ・リクエスト時の非常に早い段階(APP_USER値が確立された直後)で実行されます。APP_USERの値(:APP_USERまたはv('APP_USER')を使用)をブロック内で使用できます。セッション・ステート内の他のアイテムの値も参照できますが、これらのアイテムは現在のページ・リクエストが開始する前にセッション・ステートに確立されている必要があります。次の例を検討してください。

dbms_session.set_context('CTX_USER_QRY','USERPRIV',my_package.my_function(:APP_USER));

前の例では、CTX_USER_QRYという名前のコンテキストでUSERPRIVの値を、my_packageパッケージのmy_functionファンクションによって戻された値に設定します。ファンクションには、入力引数としてAPP_USERの現行の値が渡されます。多くの場合、認証済ユーザーに適した条件の生成を有効にするために、(アプリケーションの解析スキーマ内で作成されている)VPDポリシーで名前付きコンテキストが使用されます。

ファイングレイン・アクセス制御(FGAC)とも呼ばれる仮想プライベート・データベースは、開発者がセキュリティ・ポリシーをデータベースの表およびビューに割り当てることができるApplication Program Interface(API)を提供するOracle Databaseの機能です。開発者はPL/SQLを使用して、ストアド・プロシージャを含むセキュリティ・ポリシーを作成し、RDBMSパッケージをコールしてそのプロシージャを表またはビューにバインドできます。このようなポリシーは、データベース内に格納されているアプリケーション・データのコンテンツか、またはOracle Databaseが提供するコンテキスト変数に基づいています。これによって、VPDではアクセス・セキュリティ・メカニズムをアプリケーションから取り除き、特定のスキーマに近い状態にできます。

このセクションに入力したコードをVPD/FGACに関連付ける必要はありません。実際、このコードはセキュリティに関連付けられません。ページ・リクエストの最初の時点で実行する必要があるコードは、すべてここに指定できます。たとえば、各ページ・リクエストに対してデータベース・セッションのタイムゾーンを設定するには、次のように指定します。

BEGIN
  EXECUTE IMMEDIATE 'alter session set time_zone = ''Australia/Sydney'' ';
END;