Oracle HTML DBユーザーズ・ガイド
リリース2.0
B25045-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

13 セキュリティの管理

アプリケーションに対するセキュリティは、クロスサイト・スクリプティング保護、セッション・ステート保護、認証および認可を介して提供できます。

内容は次のとおりです。

クロスサイト・スクリプティング保護

クロスサイト・スクリプティング(XSS)は、動的に生成されるWebページを利用したセキュリティ攻撃です。XSS攻撃では、ユーザーのブラウザに読み込まれたときにアクティブになるスクリプトがWebアプリケーションに送信されます。これらのスクリプトがアクティブになると、データまたは場合によってはセッション資格証明が盗まれ、それらの情報が攻撃者に送信される可能性があります。悪意のあるコードがOracle HTML DBアプリケーションに侵入すると、通常のページ・レンダリング時に、そのコードがアプリケーション内のHTMLリージョンや他の場所にレンダリングされる可能性があります。セッション・ステートへの不正なコードの挿入を阻止するため、HTML DBエンジンは特定の場合に文字をエスケープします。

このセクションの構成は次のとおりです。

HTMLリージョンなどの静的領域の保護

HTMLリージョンなどの静的表示領域では、&ITEM.表記法を使用してセッション・ステートを参照できます。 静的表示領域の例には、HTMLリージョン、ページのヘッダーとフッター、リージョンのヘッダーとフッター、リージョン・タイトル、ボタン・ラベル、ヘルプ・テキスト、フォーム・アイテム・ラベルおよび要素の後のテキスト、テンプレート、(フィールド・テキストの前後の)ラジオ・グループ、イベント成功メッセージ、イベント・エラー・メッセージ、ナビゲーション・バー属性、アプリケーション静的置換文字列値、チャート・ラベルおよび凡例、ブレッドクラムおよびリスト・フレーム・テキスト、カレンダ・テキスト、ラベル、凡例などがあります。

クロスサイト・スクリプティング保護属性の使用

「ページ・アイテムの編集」ページでクロスサイト・スクリプティング保護属性を使用して、レンダリング時にアイテムをエスケープするかどうかを制御できます。

クロスサイト・スクリプティング保護を有効にするには、次のステップを実行します。

  1. 該当するページ定義にナビゲートします。

    1. 「作業領域」ホームページにナビゲートします。

    2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

    4. ページを選択します。

      ページ定義が表示されます。

  2. 「アイテム」で、アイテム名を選択します。

    アイテムの属性ページが表示されます。

  3. 「セキュリティ」までスクロールします。

  4. 「クロスサイト・スクリプティング保護」から、次のいずれかの項目を選択します。

    • はい: アイテムが、セッション・ステートからフェッチされたときのままでレンダリングしても安全であると判断されるように指定します。「はい」を選択した場合、アイテムは、f?p URLを使用してセッション・ステートに渡されるときまたはページでの送信時にセッション・ステートに保存されるときにエスケープされます。

    • いいえ: アイテムが、レンダリング時にエスケープされるように指定します。「いいえ」を選択した場合、アイテムは、f?p URLを使用してセッション・ステートに渡されるときまたはページでの送信時にセッション・ステートに保存されるときにエスケープされません。

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


注意:

アプリケーション・レベルのアイテムでは、この属性に対して「はい」が暗黙的に設定されており、これを変更することはできません。

動的出力の保護

htp.pなどの方法を使用してセッション・ステートからフェッチし、レンダリングするアイテムは、必要に応じてコードで明示的にエスケープする必要があります。たとえば、ページ上のPL/SQL動的コンテンツ・リージョンで次のhtp.pを使用するとします。

 htp.p(v('SOME_ITEM'));

セッション・ステートからフェッチするアイテムの値に予期しないタグやスクリプトが含まれる可能性がある場合は、リージョンで次のhtp.pを使用できます。

htp.p(htf.escape_sc(v('SOME_ITEM'));

ただし、フェッチする値を安全にレンダリングできることが確かな場合は、この値をエスケープする必要はありません。開発者は、出力をエスケープしないほうが適切な場合を判断する必要があります。

レポート・リージョンの保護

Oracle HTML DBでは、レポートの本体にレンダリングされたデータはエスケープされます。レポート・ヘッダーおよびメッセージのセッション・ステートへの参照は、参照する値によってクロスサイト・スクリプティング保護属性が有効にされることを前提とする方法を使用して、セッション・ステートからフェッチされます。つまり、これらの値は、入力時にエスケープされたとみなされるため、フェッチ時にはエスケープされません。レポートを作成する場合は、この前提を理解し、クロスサイト・スクリプティング保護属性が「いいえ」に設定されているレポートのアイテムは参照しないようにする必要があります。

フォーム・アイテムの保護

フォーム・アイテム(非表示アイテムを含む)がページ・レンダリング時に値を取得すると、結果の文字列はレンダリング前にエスケープされます。表示タイプが「テキストとして表示(状態は保存しない)」のアイテムのみは例外で、エスケープされません。

表示タイプが「テキストとして表示(状態は保存しない)」のアイテムは、入力動作時に独自のエスケープを行います。これらのアイテムは、ページ計算、ページ・プロセスまたはアプリケーション内のソースおよびデフォルトの値を使用して、HTMLまたはスクリプトを含む値を取得しますが、f?p URLを使用して、またはそれらをポストして値を取得することはできません。この動作は、HTMLマークアップでのテキスト値の形成またはJavaScriptの挿入に適しています。

最善の対策の準備

セキュリティを強化するために、クロスサイト・スクリプティング攻撃に対して最善の対策を講じる必要があります。たとえば、開発プロセスでは、URLの改ざんまたはその他の方法によって、アイテムに悪意のあるコンテンツが侵入する可能性があるかどうかを検証します。 セキュリティが脆弱化する可能性があるため、ほぼすべてのタイプの静的領域でのレンダリングに、&MY_ITEM.を使用してフォーム・アイテムが参照されないようする必要があります。かわりに、アプリケーション・レベルのアイテムまたは「テキストとして表示(状態は保存しない)」タイプのページ・アイテムを使用します。左山カッコ(<)、右山カッコ(>)およびアンパサンド(&)をエスケープすることも、簡単なセキュリティ対策になります。

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

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

セッション・ステート保護は2ステップのプロセスで有効にします。最初に、この機能を有効にします。次に、ページおよびアイテムのセキュリティ属性を設定します。

このセクションの構成は次のとおりです。

セッション・ステート保護の仕組み

セッション・ステート保護を有効にすると、「ページ・アクセス保護」属性と「セッション・ステート保護」アイテム属性が、f?p= URL内に配置されたチェックサムとともに使用され、URL改ざんと、セッション・ステートへの権限のないアクセスおよび変更が防止されます。セッション・ステート保護を無効にすると、セッション・ステート保護に関連するページ属性およびアイテム属性が無視され、生成されるf?p= URLにはチェックサムが含まれません。

セッション・ステート保護の有効化

セッション・ステート保護は、「セキュリティ属性の編集」ページまたは「セッション・ステート保護」ページから有効にできます。

セッション・ステート保護は2ステップのプロセスで有効にします。最初に、この機能を有効にします。次に、ページおよびアイテムのセキュリティ属性を設定します。これらのステップは、ウィザードを使用して実行するか、「セッション・ステート保護」ページでページおよびアイテムのセキュリティ属性を手動で設定して行います。

このセクションの構成は次のとおりです。

「セキュリティ属性の編集」からのセッション・ステート保護の有効化

「セキュリティ属性の編集」ページからセッション・ステート保護を有効にするには、次のステップを実行します。

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

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

  3. 属性の編集」をクリックします。

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

  5. 「セッション・ステート保護」までスクロールして、「セッション・ステート保護」リストの「有効」を選択します。

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

    「セッション・ステート保護」ページが表示されます。

  7. 「セキュリティ属性の編集」ページにナビゲートして、ページおよびアイテムのセキュリティ属性を設定します。


ヒント:

セッション・ステート保護を無効にするには、前述のステップを再度実行しますが、「有効」のかわりに「無効」を選択します。セッション・ステート保護を無効にしても、既存のセキュリティ属性の設定は変更されませんが、それらの属性は実行時に無視されます。

「ブックマークの無効化」ボタン

セッション・ステート保護を有効にすると、カレント・アプリケーションへのブックマーク・リンクが機能するかどうかに影響します。次の規則を考慮してください。

  1. セッション・ステート保護を有効にした後に作成したブックマーク・リンクは、ブックマーク・リンクにチェックサムが含まれている場合に機能します。

  2. セッション・ステート保護を有効にする前に作成したブックマーク・リンクは、ブックマーク・リンクにチェックサムが含まれている場合は機能しません。

  3. チェックサムが含まれていないか、または不要なチェックサムが含まれているブックマークは、セッション・ステート保護の影響を受けません。

ページ・レンダリング時、HTML DBエンジンは、計算中に非表示のアプリケーション属性(チェックサムsalt)を使用し、f?p URLに含まれているチェックサムを確認します。セッション・ステート保護を有効にすると、HTML DBエンジンにチェックサムが含まれます。チェックサムsalt属性を再設定するには、「セキュリティ属性の編集」ページで「ブックマークの無効化」をクリックします。「ブックマークの無効化」をクリックすると、以前に生成されたチェックサムを含むアプリケーションへのアクセスに使用するブックマークURLが失敗することに注意してください。

「セッション・ステート保護」からのセッション・ステート保護の有効化

セッション・ステート保護を有効にするには、次のステップを実行します。

  1. 「共有コンポーネント」ページにナビゲートします。

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

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

    3. 「セキュリティ」で、「セッション・ステート」を選択します。

      「セッション・ステート保護」ページが表示されます。セッション・ステート保護の現行のステータス(有効または無効)がページ上部に表示されることに注意してください。

  2. 「保護の設定」ボタンをクリックします。

    「セッション・ステート保護」ウィザードが表示されます。

  3. 「操作の選択」で、「有効化」を選択して、「次へ」をクリックします。

    次に、ページおよびアイテムのセキュリティ属性を設定するかどうか決定します。

  4. 「有効化」を選択して、「次へ」をクリックします。

  5. 「セッション・ステート保護の有効化」をクリックします。


ヒント:

セッション・ステート保護を無効にするには、同じステップを実行しますが、「有効化」のかわりに「無効化」を選択します。セッション・ステート保護を無効にしても、既存のセキュリティ属性の設定は変更されませんが、実行時にはそれらが無視されます。

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

セッション・ステート保護を有効にした後、セキュリティ属性を構成します。セキュリティ属性は2つの方法で構成できます。

  • ウィザードを使用し、特定の属性カテゴリの値を選択する。この場合、選択内容がアプリケーション内のすべてのページおよびアイテムに適用されます。

  • 個々のページ、アイテムまたはアプリケーション・アイテムの値を構成する。

このセクションの構成は次のとおりです。


ヒント:

セキュリティ属性を構成する前に、まずセッション・ステート保護を有効にする必要があります。「セッション・ステート保護の有効化」を参照してください。

既存のセッション・ステート保護設定の確認

「セッション・ステート保護」ウィザードの最初のページでは、ページ、アイテムおよびアプリケーション・アイテムのセッション・ステート保護設定のサマリーを確認できます。

既存のセッション・ステート保護設定のサマリーを表示するには、次のステップを実行します。

  1. 「セッション・ステート保護」ページにナビゲートします。

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

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

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

    4. 「セキュリティ」で、「セッション・ステート保護」を選択します。

      「セッション・ステート保護」ページが表示されます。

  2. 「保護の設定」をクリックします。

  3. ページ下部で次のレポートを開きます。

    • ページ・レベルのセッション・ステート保護サマリー

    • ページ・アイテムのセッション・ステート保護サマリー

    • アプリケーション・アイテムのセッション・ステート保護

ウィザードを使用したセッション・ステート保護の構成

ウィザードを使用してセッション・ステート保護を構成するときは、特定の属性カテゴリの値を設定します。この場合、選択内容がアプリケーション内のすべてのページおよびアイテムに適用されます。

ウィザードを使用してセッション・ステート保護を構成するには、次のステップを実行します。

  1. 「セッション・ステート保護」ページにナビゲートします。

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

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

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

    4. 「セキュリティ」で、「セッション・ステート保護」を選択します。

      「セッション・ステート保護」ページが表示されます。

  2. 「保護の設定」をクリックします。

    「セッション・ステート保護」ウィザードが表示されます。

  3. 「操作の選択」で、「構成」を選択して、「次へ」をクリックします。

  4. 「ページ・アクセス保護」で、次のいずれかを選択します。

    • 制限なし: セッション・ステート引数(Request、Clear Cache、Name/Values)の有無にかかわらず、URLを使用してページを要求できます。

    • 引数にチェックサムが必要: URLにRequest、Clear CacheまたはName/Value引数が表示されている場合は、チェックサムも提供する必要があります。チェックサム・タイプは、引数として渡されるすべてのアイテムの最も厳密なセッション・ステート保護属性と互換性がある必要があります。

    • 引数使用不可: URLを使用してページを要求できますが、Request、Clear CacheまたはName/Value引数は許可されません。

    • URLアクセスなし: URLを使用してページにアクセスできませんが、ページは、URLリダイレクトを行わない「ページにブランチ」ブランチ・タイプのターゲットにできます。

  5. 「アプリケーション・アイテム保護」で、次のいずれかの項目を選択します。

    • 制限なし: URLまたはフォームでアイテム名/値を渡して、アイテムのセッション・ステートを設定できます。URLにチェックサムは必要ありません。

    • チェックサムが必要: アプリケーション・レベル: 作業領域およびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: 作業領域、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • 制限付き - ブラウザから設定できない: URLまたはPOSTDATAを使用してアイテムを変更できません。アイテムの値を内部プロセス、計算などに設定できる方法を制限する場合は、このオプションを使用します。この属性は、データ・エントリ・アイテムとして使用できないアイテムのみに適用され、セッション・ステート保護が無効になっていても常に監視されます。

      次の表示形式タイプのアプリケーション・アイテムまたはページ・アイテムについては、この属性を使用します。

      • テキストとして表示(特殊文字をエスケープし、状態は保存しない)

      • テキストとして表示(状態は保存しない)

      • テキストとして表示(LOVに基づき、状態は保存しない)

      • テキストとして表示(PL/SQLに基づき、状態は保存しない)

      • テキスト・フィールド(無効、状態を保存しない)

      • HTML表の停止および開始(ラベルのみ表示)

  6. 「ページのデータ・エントリ・アイテム保護」で、次のいずれかの項目を選択します。

    • 制限なし: URLまたはフォームでアイテム名/値を渡して、アイテムのセッション・ステートを設定できます。URLにチェックサムは必要ありません。

    • チェックサムが必要: アプリケーション・レベル: 作業領域およびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: 作業領域、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

  7. 「ページの表示専用アイテム保護」で、次のいずれかの項目を選択します。

    • 制限なし: URLまたはフォームでアイテムの名前/値を渡して、アイテムを設定できます。URLにチェックサムは必要ありません。

    • チェックサムが必要: アプリケーション・レベル: 作業領域およびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: 作業領域、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • 制限付き - ブラウザから設定できない: URLまたはPOSTDATAを使用してアイテムを変更できません。アイテムの値を内部プロセス、計算などに設定できる方法を制限する場合は、このオプションを使用します。この属性は、セッション・ステート保護が無効になっていても、常に監視されます。

      次の表示形式タイプについては、この属性を使用します。

      • テキストとして表示(特殊文字をエスケープし、状態は保存しない)

      • テキストとして表示(状態は保存しない)

      • テキストとして表示(LOVに基づき、状態は保存しない)

      • テキストとして表示(PL/SQLに基づき、状態は保存しない)

      • テキスト・フィールド(無効、状態を保存しない)

      • HTML表の停止および開始(ラベルのみ表示)

  8. 次へ」をクリックします。

  9. 終了」をクリックします。

ページのセッション・ステート保護の構成

ページのセッション・ステート保護を構成するには、次のステップを実行します。

  1. 「セッション・ステート保護」ページにナビゲートします。

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

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

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

    4. 「セキュリティ」で、「セッション・ステート保護」を選択します。

      「セッション・ステート保護」ページが表示されます。

  2. 「ページ」アイコンをクリックします。

  3. ビューにフィルタを適用するには、ページ上部の「ページ」、「表示」および「ページ・アクセス保護」リストを使用します。

  4. ページIDを選択します。

    「ページおよびアイテム保護の設定」ページが表示されます。次の情報がページの上部に表示されます。

    • アプリケーションIDおよび名前

    • セッション・ステート保護のステータス(有効または無効)

    • ページID

    • ページ名

  5. 「ページ・アクセス保護」で、次のいずれかを選択します。

    • 制限なし: セッション・ステート引数(Request、Clear Cache、Name/Values)の有無にかかわらず、URLを使用してページを要求できます。

    • 引数にチェックサムが必要: URLにRequest、Clear CacheまたはName/Value引数が表示されている場合は、チェックサムも提供する必要があります。チェックサム・タイプは、引数として渡されるすべてのアイテムの最も厳密なセッション・ステート保護属性と互換性がある必要があります。

    • 引数使用不可: URLを使用してページを要求できますが、Request、Clear CacheまたはName/Value引数は許可されません。

    • URLアクセスなし: URLを使用してページにアクセスできませんが、ページは、URLリダイレクトを行わない「ページにブランチ」ブランチ・タイプのターゲットにできます。

  6. 「アイテム・タイプ」で、「データ・エントリ・アイテム」または「表示専用アイテム」を選択します。

    データ・エントリ・アイテムは、フォームを使用して変更できるアイテムであり、非表示アイテムもこれに含まれます。表示専用アイテムはレンダリングされるだけで、フォームとともに送信されません。

  7. 「データ・エントリ・アイテム」を選択した場合は、各アイテムのセッション・ステート保護レベルを選択します。

    • 制限なし: URLまたはフォームでアイテム名/値を渡して、アイテムのセッション・ステートを設定できます。URLにチェックサムは必要ありません。

    • チェックサムが必要: アプリケーション・レベル: 作業領域およびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: 作業領域、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

  8. 「表示専用アイテム」を選択した場合は、各アイテムのセッション・ステート保護レベルを選択します。

    • 制限なし: URLまたはフォームでアイテムの名前/値を渡して、アイテムを設定できます。URLにチェックサムは必要ありません。

    • 制限付き - ブラウザから設定できない: URLまたはPOSTDATAを使用してアイテムを変更できません。アイテムの値を内部プロセス、計算などに設定できる方法を制限する場合は、このオプションを使用します。この属性は、セッション・ステート保護が無効になっていても、常に監視されます。次の表示形式タイプについては、この属性を使用します。

      • テキストとして表示(特殊文字をエスケープし、状態は保存しない)

      • テキストとして表示(状態は保存しない)

      • テキストとして表示(LOVに基づき、状態は保存しない)

      • テキストとして表示(PL/SQLに基づき、状態は保存しない)

      • テキスト・フィールド(無効、状態を保存しない)

      • HTML表の停止および開始(ラベルのみ表示)

    • チェックサムが必要: アプリケーション・レベル: 作業領域およびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: 作業領域、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

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

アイテムのセッション・ステート保護の構成

アイテムのセッション・ステート保護を構成するには、次のステップを実行します。

  1. 「セッション・ステート保護」ページにナビゲートします。

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

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

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

    4. 「セキュリティ」で、「セッション・ステート保護」を選択します。

      「セッション・ステート保護」ページが表示されます。

  2. 「アイテム」アイコンをクリックします。

  3. ビューにフィルタを適用するには、ページ上部の「ページ」、「表示」および「アイテムのセッション・ステート保護」リストから項目を選択して、「実行」をクリックします。

  4. ページIDを選択します。

    「ページおよびアイテムのセッション・ステート保護を編集」ページが表示されます。次の情報がページの上部に表示されます。

    • アプリケーションIDおよび名前

    • セッション・ステート保護のステータス(有効または無効)

    • ページID

    • ページ名

  5. 「ページ・アクセス保護」で、各アイテムのセッション・ステート保護レベルを選択します。

    • 制限なし: セッション・ステート引数(Request、Clear Cache、Name/Values)の有無にかかわらず、URLを使用してページを要求できます。

    • 引数にチェックサムが必要: URLにRequest、Clear CacheまたはName/Value引数が表示されている場合は、チェックサムも提供する必要があります。チェックサム・タイプは、引数として渡されるすべてのアイテムの最も厳密なセッション・ステート保護属性と互換性がある必要があります。

    • 引数使用不可: URLを使用してページを要求できますが、Request、Clear CacheまたはName/Value引数は許可されません。

    • URLアクセスなし: URLを使用してページにアクセスできませんが、ページは、URLリダイレクトを行わない「ページにブランチ」ブランチ・タイプのターゲットにできます。

  6. 「アイテム・タイプ」で、「データ・エントリ・アイテム」または「表示専用アイテム」を選択します。

    データ・エントリ・アイテムは、フォームを使用して変更できるアイテムであり、非表示アイテムもこれに含まれます。表示専用アイテムはレンダリングされるだけで、フォームとともに送信されません。

  7. 「データ・エントリ・アイテム」を選択した場合は、各アイテムのセッション・ステート保護レベルを選択します。

    • 制限なし: URLまたはフォームでアイテム名/値を渡して、アイテムのセッション・ステートを設定できます。URLにチェックサムは必要ありません。

    • チェックサムが必要: アプリケーション・レベル: 作業領域およびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: 作業領域、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

  8. 「表示専用アイテム」を選択した場合は、各アイテムのセッション・ステート保護レベルを選択します。

    • 制限なし: URLまたはフォームでアイテムの名前/値を渡して、アイテムを設定できます。URLにチェックサムは必要ありません。

    • 制限付き - ブラウザから設定できない: URLまたはPOSTDATAを使用してアイテムを変更できません。アイテムの値を内部プロセス、計算などに設定できる方法を制限する場合は、このオプションを使用します。この属性は、セッション・ステート保護が無効になっていても、常に監視されます。次の表示形式タイプについては、この属性を使用します。

      • テキストとして表示(特殊文字をエスケープし、状態は保存しない)

      • テキストとして表示(状態は保存しない)

      • テキストとして表示(LOVに基づき、状態は保存しない)

      • テキストとして表示(PL/SQLに基づき、状態は保存しない)

      • テキスト・フィールド(無効、状態を保存しない)

      • HTML表の停止および開始(ラベルのみ表示)

    • チェックサムが必要: アプリケーション・レベル: 作業領域およびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: 作業領域、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

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

アプリケーション・アイテムのセッション・ステート保護の構成

アプリケーション・アイテムのセッション・ステート保護を構成するには、次のステップを実行します。

  1. 「セッション・ステート保護」ページにナビゲートします。

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

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

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

    4. 「セキュリティ」で、「セッション・ステート保護」を選択します。

      「セッション・ステート保護」ページが表示されます。

  2. 「アプリケーション・アイテム」アイコンをクリックします。

  3. アプリケーション・アイテムを選択します。

  4. 「セキュリティ」で、「セッション・ステート保護」リストから次のいずれかを選択します。

    • 制限なし: URLまたはフォームでアイテム名/値を渡して、アイテムのセッション・ステートを設定できます。URLにチェックサムは必要ありません。

    • 制限付き - ブラウザから設定できない: URLまたはPOSTDATAを使用してアイテムを変更できません。アイテムの値を内部プロセス、計算などに設定できる方法を制限する場合は、このオプションを使用します。この属性は、データ・エントリ・アイテムとして使用できないアイテムのみに適用され、セッション・ステート保護が無効になっていても常に監視されます。次の表示形式タイプのアプリケーション・アイテムについては、この属性を使用します。

      • テキストとして表示(特殊文字をエスケープし、状態は保存しない)

      • テキストとして表示(状態は保存しない)

      • テキストとして表示(LOVに基づき、状態は保存しない)

      • テキストとして表示(PL/SQLに基づき、状態は保存しない)

      • テキスト・フィールド(無効、状態を保存しない)

      • HTML表の停止および開始(ラベルのみ表示)

    • チェックサムが必要: アプリケーション・レベル: 作業領域およびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: 作業領域、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行の作業領域において同じアプリケーションを別のセッションで実行しているユーザーによって生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合は、このオプションを使用します。

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

認証を介したユーザーの本人確認

認証は、ユーザーがアプリケーションにアクセスする前に、そのユーザーの本人確認を行うプロセスです。認証では、ユーザーにユーザー名とパスワードの指定を要求するか、またはデジタル証明書や保護キーを使用する可能性があります。

認証スキームを作成する場合、多くの事前構成済の認証スキームから選択するか、既存のアプリケーションから認証スキームをコピーするか、または独自のカスタム認証スキームを作成できます。

このセクションの構成は次のとおりです。

認証の仕組みの理解

アプリケーションがユーザーとどのように対話するかを決定します。すべてのユーザーが同じ権限を持つ場合、そのユーザーはパブリック・ユーザーとみなされます。ただし、アプリケーションが各ユーザーを個別に追跡する必要がある場合は、認証方式を指定する必要があります。

認証は、アプリケーションにアクセスする各ユーザーの本人確認を行います。多くの認証プロセスで、ユーザーはなんらかの資格証明(ユーザー名とパスワードなど)を提供する必要があります。これらの資格証明は評価され、合格または不合格のいずれかとなります。資格証明が合格した場合、ユーザーはアプリケーションにアクセスできます。不合格の場合は、アクセスが拒否されます。

ユーザーの本人確認が行われると、HTML DBエンジンが組込み置換文字列APP_USERの値を設定して、各ユーザーを追跡します。ユーザーがページ間をナビゲートすると、HTML DBエンジンがAPP_USERの値を設定して、本人確認を行います。HTML DBエンジンは、各ユーザーのセッション・ステートを追跡するための重要なコンポーネントとしてAPP_USERを使用します。

プログラミングの観点では、次の構文を使用してAPP_USERにアクセスできます。

  • PL/SQLを使用する場合

    V('APP_USER')
    
    
  • PL/SQLまたはSQLのいずれかのバインド変数として使用する場合

    :APP_USER
    
    

APP_USERを使用すると、独自のセキュリティ・チェックおよび条件付き処理を実行できます。たとえば、次の表を作成したと想定します。

CREATE TABLE my_security_table (
  user_id   VARCHAR2(30),
  privilege VARCHAR2(30));

表を作成したら、この表にユーザー権限情報を移入して、ページ、タブ、ナビゲーション・バー、ボタン、リージョン、または、その他のコントロールやコンポーネントの表示の制御に使用できます。


参照:

APP_USER」および「セキュリティ属性の構成

認証を含めるかどうかの決定

アプリケーションを作成する場合、認証を含めるかどうかを決定する必要があります。次の選択肢があります。

  • 認証を要求しないOracle HTML DBは、ユーザー資格証明を確認しません。すべてのユーザーが、アプリケーションのすべてのページにアクセスできます。

  • 組込み認証スキームを選択する使用可能な事前構成済の認証スキームに基づいて、認証方式を作成します。 選択するスキームによっては、Oracle10giAS、Oracle Internet Directoryまたは他の外部サービスの対応するコンポーネントを構成する必要があります。

  • カスタム認証スキームを作成するカスタム認証方式を作成すると、認証インタフェースを完全に制御できます。この方法を実装するには、HTML DBエンジンが各ページ・リクエストを処理する前に実行するPL/SQLファンクションを提供する必要があります。このファンクションのブール戻り値によって、HTML DBエンジンが通常どおりにページを処理するか、または失敗ページを表示するかが決まります。

認証スキームの作成

認証スキームを作成するには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

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

  5. 「セキュリティ」で、「認証スキーム」を選択します。

    「認証スキーム」ページが表示されます。

  6. 新しい認証スキームを作成するには、「作成」をクリックします。

  7. 次のいずれかの項目を選択して、スキームの作成方法を指定します。

    • 事前構成済の認証スキームに基づいて

    • 既存の認証スキームのコピーとして

    • 最初から

  8. 画面に表示されるステップに従います。

認証スキーム・リポジトリの使用

認証スキームを作成すると、使用可能な認証スキームが認証スキーム・リポジトリに表示されます。

認証スキーム・リポジトリにナビゲートするには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

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

  5. 「セキュリティ」で、「認証スキーム」を選択します。

    「認証スキーム」ページが表示されます。「ビュー」リストから選択して、ページの外観を変更できます。使用可能なオプションは次のとおりです。

    • アイコン(デフォルト): 各認証スキームを大きいアイコンとして表示します。認証スキームを編集するには、該当するアイコンをクリックします。

    • 詳細: 各アプリケーション・アイテムをレポートに1行で表示します。

      「詳細」ビューでは、次の操作を実行できます。

      • スキーム名を選択して、認証スキームを編集する。

      • 「表示」アイコンをクリックして、各ページで実行されるステップのリストを表示する。

      • 「カレントにする」リンクをクリックして、アプリケーションに認証スキームを適用する。

アプリケーションのカレント認証スキームの表示

アプリケーションのカレント認証スキームを表示するには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. 属性の編集」をクリックします。

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

  6. 「認証」セクションに移動します。カレント認証スキームが「認証スキーム」の横に表示されます。

  7. 「認証スキーム」ページにリンクして、スキーム名を選択するには、次のステップを実行します。

アプリケーションのカレント認証スキームの変更

アプリケーションの認証スキームを変更するには、次のステップを実行します。

  1. 「認証スキーム」にナビゲートします。

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

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

    3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

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

    4. 「セキュリティ」で、「認証スキーム」を選択します。

  2. ページの上部の「カレントの変更」タブをクリックします。

  3. 新しい認証スキームを選択し、「次へ」をクリックします。

  4. 「カレント化」をクリックします。

認証スキームの使用状況の表示

認証スキーム・レポートには、現行の作業領域におけるすべてのアプリケーションについて、認証スキームの使用状況がリストされます。

認証スキーム・レポートを表示するには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

    アプリケーションのホームページが表示されます。

  4. 「タスク」リストから「アプリケーション・レポートの表示」を選択します。

  5. 「クロス・アプリケーション・レポート」をクリックします。

  6. 「認証スキーム」を選択します。

  7. アプリケーションIDをクリックして、該当するアプリケーションのホームページにリンクします。

事前構成済の認証スキーム

事前構成済の認証スキームを選択すると、Oracle HTML DBによって、標準動作の認証およびセッション管理を行う認証スキームがアプリケーションに作成されます。次に、使用可能な事前構成済の認証スキームについて説明します。

  • 公開資格証明を使用すると、ユーザー名を取得する組込みログイン・ページを使用して、自分のアプリケーションがすべてのユーザーからアクセス可能になります。これは、アプリケーションの開発中に役立ちます。

  • HTML DBアカウント資格証明は、Oracle HTML DBユーザー・リポジトリで作成および管理される内部ユーザー(「Cookieユーザー」ともいう)・アカウントを参照します。メソッドを使用すると、アプリケーションをこれらのアカウントに対して簡単に認証できます。

  • LDAP資格証明の検証を行うには、使用する外部LDAP(Lightweight Directory Access Protocol)ディレクトリに対する構成パラメータを指定する必要があります。

  • 認証なし(DADを使用)では、DAD構成に格納された値、またはアカウント情報がDAD構成に格納されていない場合にBasic認証要求を使用して取得されたユーザー名のいずれかとして、データ・アクセス記述子(DAD)からユーザー名が取得されます。

  • Oracle Application Server Single Sign-On(パートナ・アプリケーションとしてのHTML DBエンジン)は、OracleAS Single Sign-On(SSO)Serverに認証を委譲します。認証スキームを使用するには、サイトは、SSO Serverにパートナ・アプリケーションとして登録されている必要があります。詳細は、管理者に連絡してください。

  • Oracle Application Server Single Sign-On(パートナ・アプリケーションとしてのMy Application)は、SSO Serverに認証を委譲します。SSOには、アプリケーションをパートナ・アプリケーションとして登録する必要があります。

DAD資格証明の検証

DADデータベース認証では、Oracleデータベース固有の認証と、Basic認証スキームを使用してユーザーを認証するユーザー・メカニズムを使用します。DAD資格証明の検証を使用するには、次の条件を満たしている必要があります。

  • 各アプリケーション・ユーザーが、Oracleデータベースにユーザー・アカウントを持っている。

  • Basic認証用のPL/SQL DADを構成している(アカウント情報なし)。

    これによって、アプリケーション・ユーザーは、ブラウザ・セッションごとに1回ユーザー名/パスワードを要求されます。その後、ユーザーIDトークンがAPP_USERアイテム内で使用可能になります。

DADデータベース認証は、管理可能な数のユーザーに対して最小限の設定のみが必要な認証方式を実装する場合に役立ちます。これらのユーザーがすでにデータベース内に自己管理されたアカウントを持っており、この認証方式を短期間(たとえば、開発のデモンストレーションまたはプロトタイプ段階の間)のみ使用することが理想です。

この方法の主なデメリットは、特にユーザーが自分のパスワードを管理していないか、またはユーザーのデータベース・アカウントがアプリケーションへの認証を容易化するためのみに存在している場合に、アカウントのメンテナンスが負担となることです。

HTML DBアカウント資格証明

HTML DBアカウント資格証明は、Oracle HTML DBユーザー・リポジトリで作成および管理される内部ユーザー(「Cookieユーザー」ともいう)・アカウントを使用します。作業領域管理者は、「ユーザーの管理」ページを使用して、ユーザー・アカウントを作成および編集できます。HTML DBアカウント資格証明は、次の場合に優れたソリューションです。

  • ユーザー・アカウント・リポジトリを制御する場合

  • ユーザー名およびパスワードに基づいたセキュリティで十分な場合

  • シングル・サインオン・フレームワークへの統合が不要な場合

この方法は特に、ユーザー・グループを新しいアプリケーションで迅速に起動および実行する必要がある場合に適しています。


参照:

ユーザー・アカウントを作成および管理する方法については、「ユーザーの管理」を参照してください。

LDAP資格証明の検証

ログイン・ページを使用する認証スキームは、Lightweight Directory Access Protocol(LDAP)を使用して、ログイン・ページで送信されるユーザー名およびパスワードを検証するように構成できます。アプリケーション・ビルダーには、このオプションの構成方法を示すウィザードと編集ページが含まれています。これらのウィザードでは、この構成のために、ご使用のアプリケーションにアクセス可能なLDAPディレクトリがすでに存在していることと、LDAPディレクトリが資格証明の検証のSIMPLE_BIND_Sコールに応答できることを想定しています。LDAP資格証明の認証スキームを作成する場合、ウィザードによってLDAPホスト名、LDAPポート、DN文字列が要求され保存されます。オプションの事前処理ファンクションを指定して、APIに渡されるユーザー名の書式設定を調整できます。

Single Sign-On Serverの検証の概要

Oracle HTML DBアプリケーションは、Oracle Application ServerのSingle Sign-On(SSO)インフラストラクチャでパートナ・アプリケーションとして実行できます。実行には、アプリケーション(またはHTML DBエンジン)をパートナ・アプリケーションとして登録する必要があります。アプリケーションまたはHTML DBエンジンをパートナ・アプリケーションとして登録するには、Oracle Application Serverのパートナ・アプリケーションの登録ステップに従い、Oracle9iAS SSO Software Developer Kit(SDK)をインストールします。

この方法を選択する場合、ご使用のアプリケーションでは統合されたログイン・ページが使用されません。かわりに、ユーザーが新しいブラウザ・セッションでアプリケーションにアクセスすると、HTML DBエンジンによってSingle Sign-Onログイン・ページにリダイレクトされます。ユーザーがSSOによって認証されると、SSOコンポーネントはアプリケーションにリダイレクトし、HTML DBエンジンにユーザー識別情報およびその他の情報を渡します。その後、ユーザーはログオフするか、ブラウザ・セッションを終了するか、またはその他のセッション終了イベントが発生するまでアプリケーションを使用できます。

認証スキームを最初から作成する方法

認証スキームを最初から作成すると、認証インタフェースを完全に制御できます。これは、次のいずれかに該当する場合に最適な方法です。

  • データベース認証または他の方式が適切でない。

  • 独自のログイン・フォームおよび関連方式を開発する必要がある。

  • Oracle 10gAS Single Sign-Onなどの外部サービスに対して、ユーザー認証のすべての設定を委譲する必要がある。

  • HTML DBセッション管理のセキュリティを制御する必要がある。

  • ユーザー・レベルまたはセッション・レベルでアクティビティを記録または監査する必要がある。

  • セッションのアクティビティ制限または存続期限を施行する必要がある。

  • Oracle HTML DBページ・プロセスの前にn方向の条件付きリダイレクト・ロジックをプログラムする必要がある。

  • 一般的なセッション管理フレームワークを使用して、アプリケーションをOracle HTML DBアプリケーション以外のアプリケーションと統合する必要がある。

  • アプリケーションが、シームレス(たとえば、複数のOracle HTML DBアプリケーションID)に動作する複数のアプリケーションで構成されている。


参照:

詳細は、「HTMLDB_CUSTOM_AUTH」を参照してください。

セッション管理セキュリティ

Oracle HTML DBは、カスタム認証を実行する際に、次の2つの不適切な状況が発生しないようにします。

  • あるユーザーが、他のユーザーに属するセッション・ステートに故意にアクセスしようとすること。ただし、ユーザーは任意のアプリケーション・セッションIDをURLに入力できます。

  • 失効したセッション・ステート(多くの場合、同じユーザーに属する以前のセッション・ステート)が不注意にアクセスされること。これは一般的に、アプリケーション・ページへのブックマークを使用したために発生します。

Oracle HTML DBは、カスタム認証ファンクションによって設定されたユーザーIDトークンが、アプリケーション・セッションが最初に作成された際に記録されたユーザーIDと一致するかどうかを確認します。ユーザーがまだ認証されておらず、ユーザーIDが認識されていない場合、アクセスをしているセッション・ステートは、他のユーザーに属していません。これらの確認によって、リクエスト内のセッションIDが使用可能かどうかが判断されます。セッションIDが使用不可能な場合、HTML DBエンジンは適切なセッションIDを使用して、同じページにリダイレクトします。

ログイン・ページの構築

Oracle HTML DBで新しいアプリケーションを作成すると、ログイン・ページが作成されます。ページの別名は、'LOGIN'です。このページは、認証スキームで「無効なセッション」ページとして使用できます。このページは、Oracle HTML DBのログインAPIをコールするプロセスを使用して、資格証明の検証およびセッションの登録を実行するように構築されています。

事前に構築されたモデル・ページを使用して、すべてのユーザー・インタフェースを調整し、要件に対してロジックを加工して、独自のログイン・ページを構築することもできます。

アプリケーションのログイン・ページを作成するには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. ページの作成」をクリックします。

  5. 「ログイン・ページ」を選択します。

  6. ログイン・ページ属性を指定して、「作成」をクリックします。

ディープ・リンクの概要

ディープ・リンクは、コンテキスト外(たとえば、電子メールのハイパーリンクまたはワークフロー通知から)のOracle HTML DBページにリンクする機能を指します。コンテキスト外のページにリンクし、そのアプリケーションでユーザー認証が必要な場合、ログイン・ページが表示されます。資格証明の検証後、HTML DBエンジンは元のリンクで参照されていたページを自動的に表示します。ディープ・リンクは、認証スキームを使用するアプリケーションに対してサポートされます。

認可を介したセキュリティの提供

認可は、ユーザー権限に基づいてリソースへのアクセスを制御することを示す広義語です。条件は特定のページ・コントロールまたはページ・コンポーネントのレンダリングおよび処理を制御しますが、認可スキームは特定のコントロールまたはコンポーネントへのユーザーのアクセスを制御します。

このセクションの構成は次のとおりです。

認可スキームの動作方法

認可スキームは、アプリケーションの認証スキームのセキュリティを強化します。認可スキームは、アプリケーション全体、各ページ、またはリージョン、アイテム、ボタンなどの特定のコントロールに対して指定できます。たとえば、認可スキームを使用して、ユーザーに表示するタブ、リージョンまたはナビゲーション・バーを選択的に決定できます。

認可スキームの結果は、成功または失敗のいずれかです。コンポーネントまたはコントロール・レベルの認可スキームに成功すると、そのコンポーネントまたはコントロールがユーザーに表示されます。失敗すると、そのコンポーネントまたはコントロールはユーザーに表示されません。アプリケーション・レベルまたはページ・レベルの認可スキームに失敗すると、Oracle HTML DBは事前定義済のメッセージを表示します。

認可スキームを定義する場合は、一意の名前を指定します。定義した認可スキームは、アプリケーションのコンポーネントまたはコントロールに割り当てることができます。アプリケーションのコンポーネントまたはコントロールに認可スキームを割り当てるには、該当する属性ページにナビゲートして、「認可スキーム」リストから認可スキームを選択するのみです。

認可スキームの作成

認可スキームは、アプリケーションまたはアプリケーション・コンポーネントまたはコントロールに割り当てる前に作成する必要があります。

認可スキームを作成するには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

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

  5. 「セキュリティ」で、「認可スキーム」を選択します。

  6. 作成」をクリックします。

  7. 次のいずれかの項目を選択して、認可スキームの作成方法を指定します。

    • 最初から

    • 既存の認可スキームのコピーとして

  8. 画面に表示されるステップに従います。

既存の認可スキーム属性の編集

既存の認可スキームの属性を編集するには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

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

  5. 「セキュリティ」で、「認可スキーム」を選択します。

    「認可スキーム」ページが表示されます。デフォルトでは、各スキームがアイコンとして表示されます。

  6. すべてのスキームの詳細ビューにアクセスするには、「ビュー」リストから「詳細」を選択します。

    「認可スキーム」ページが表示されます。「ビュー」リストから選択して、ページの外観を変更できます。使用可能なオプションは次のとおりです。

    • アイコン(デフォルト): 各認証スキームを大きいアイコンとして表示します。認可スキームを編集するには、該当するアイコンをクリックします。

    • 詳細: 各アプリケーション・アイテムをレポートに1行で表示します。認可スキームを編集するには、スキーム名を選択します。

評価ポイント属性

評価ポイント属性に、認可スキームを検証するタイミングを指定できます。認可スキームをセッションごとに1回検証するか、またはページ・ビューごとに1回検証するかを選択できます。

認可スキームがセッションごとに1回評価されるように指定して、その認可スキームが合格した場合、基礎となるコード、テストまたは問合せは、そのアプリケーション・セッション中に再実行されないことに注意してください。認可スキームが、セッション中の異なる時刻に評価されると結果が異なる可能性があるテストで構成されている場合、評価ポイントをページ・ビューごとに1回に指定する必要があります。

認可スキーム・ステートのリセット

認可スキームがセッションごとに1回検証される場合、Oracle HTML DBは各ユーザーのセッション・キャッシュ内に検証結果をキャッシュします。 セッションの認可スキーム・ステートは、HTMLDB_UTIL.RESET_AUTHORIZATIONS APIをコールしてリセットできます。

このプロシージャをコールすると、カレント・セッションに対して以前にキャッシュされた認可スキームの結果がNULLになります。このプロシージャは引数を取らず、パブリックに実行可能なHTMLDB_UTILパッケージの一部であることに注意してください。

アプリケーション、ページまたはコンポーネントへの認可スキームの割当て

作成した認可スキームは、アプリケーション全体、ページ、コントロールまたはコンポーネントに割り当てることができます。

このセクションの構成は次のとおりです。

アプリケーションへの認可スキームの割当て

認可スキームをアプリケーションに割り当てるには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. 属性の編集」アイコンをクリックします。

    「アプリケーション属性」ページが表示されます。

  5. 「セキュリティ属性の編集」アイコンをクリックします。

  6. 「認可」までスクロールして、「認可スキーム」リストから認可スキームを選択します。

ページへの認可スキームの割当て

認可スキームをページに割り当てるには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. ページを選択します。

  5. 属性の編集」をクリックします。

  6. 「セキュリティ」までスクロールして、「認可スキーム」リストから認可スキームを選択します。

コントロールまたはコンポーネントへの認可スキームの割当て

認可スキームをページ・コンポーネントまたはコントロールに割り当てるには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. ページを選択します。

  5. 認可スキームを適用するコンポーネントまたはコントロールの名前をクリックします。

  6. 「セキュリティ」までスクロールして、「認可スキーム」リストから認可スキームを選択します。

認可レポートの表示

認可スキームのサブスクリプションおよび認可スキームの使用率レポートを使用すると、アプリケーション内の認可スキームをより効率的に管理できます。

認可スキーム・レポートを表示するには、次のステップを実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション・ビルダー」アイコンをクリックします。

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

  4. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

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

  5. 「セキュリティ」で、「認可スキーム」を選択します。

  6. ページ上部の該当するタブをクリックします。

    • サブスクリプション

    • 使用状況

サブスクリプション

認可スキームのサブスクリプション・レポートを使用して、認可スキームのサブスクリプションの詳細を表示します。

使用状況

認可スキームの使用率レポートを使用して、認可スキームの使用率の詳細を表示します。

ページの認可スキームの有無を示す詳細レポートを表示するには、「タスク」リストから次のいずれかを選択します。

  • 認可スキームが指定されているレポート・ページ

  • 認可スキームが指定されていないレポート・ページ