20.4.1 認証の理解

認証について学習します。

20.4.1.1 認証の仕組み

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

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

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

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

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

    :APP_USER
    
  • PL/SQLパッケージおよびトリガーを使用する場合

    V('APP_USER')
    
  • コンテキストAPEX$SESSIONの属性として使用する場合

    sys_context('APEX$SESSION', 'APP_USER')
    

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

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

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

20.4.1.2 ディープ・リンクのサポートについて

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

20.4.1.3 認証を含めるかどうかの決定について

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

  • 認証不要の選択。Oracle Application Expressはすべてのユーザーの資格証明をチェックしません。アプリケーションのすべてのページには、すべてのユーザーからアクセスできます。

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

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