20.4.3.2 カスタム認証

カスタム認証スキームを最初から作成して、認証インタフェースを完全に制御できるようにします。

20.4.3.2.1 カスタム認証について

カスタム認証は、次のいずれかが該当する場合にアプリケーションに最適な方法です。

  • データベース認証または他の方式が適切でない。
  • 独自のログイン・フォームおよび関連方式を開発する必要がある。
  • セッション管理のセキュリティ面を制御する必要がある。
  • ユーザー・レベルまたはセッション・レベルでアクティビティを記録または監査する必要がある。
  • セッションのアクティビティ制限または存続期限を施行する必要がある。
  • Oracle APEXページ・プロセスの前に一方向の条件付きリダイレクト・ロジックをプログラムする必要がある。
  • 一般的なセッション管理フレームワークを使用して、アプリケーションをAPEX以外のアプリケーションと統合する必要がある。
  • アプリケーションが、シームレス(たとえば、複数のアプリケーションID)に動作する複数のアプリケーションで構成されている。

ヒント:

複数のアプリケーションで同じ認証スキームの使用を計画している場合は、カスタム認証プラグインの記述を検討してください。「プラグインの実装」を参照してください。

20.4.3.2.2 カスタム認証の設定

カスタム認証スキームを作成するには:

  1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
  2. アプリケーションを選択します。
  3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

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

  4. 「セキュリティ」で、「認証スキーム」を選択します。
  5. 認証スキーム・ページで、「作成」をクリックします。
  6. 「ギャラリからの事前構成済スキームに基づく」を選択し、「次へ」をクリックします。
  7. 「名前」で、次の項目を指定します。
    1. 名前: 他のアプリケーション開発者が認証スキームを参照するための名前を入力します。
    2. スキーム・タイプ: 「カスタム」を選択します。
  8. 該当するフィールドに入力します。

    特定のフィールドについてさらに学習するには、フィールドレベル・ヘルプを参照してください。

  9. 「認証スキームの作成」をクリックします。

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

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

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

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