20.4.1 認証の理解

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

20.4.1.1 認証の仕組み

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

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

ユーザーの本人確認が行われると、Oracle APEXエンジンが組込み置換文字列APP_USERの値を設定して、各ユーザーを追跡します。ユーザーがページ間をナビゲートすると、APEXエンジンはAPP_USERの値を設定して、本人確認を行います。APEXエンジンでは、各ユーザーのセッション・ステートを追跡するためのキーの1つの要素として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 ディープ・リンクのサポートについて

認証スキームを使用するAPEXアプリケーションでは、ディープ・リンクがサポートされています。ディープ・リンクは、コンテキスト外のAPEXページに(電子メールまたはワークフロー通知のハイパーリンクなどから)リンクする機能を指します。コンテキスト外のページにリンクし、そのアプリケーションでユーザー認証が必要な場合、サインイン・ページが表示されます。資格証明の検証後、APEXエンジンは元のリンクで参照されていたページを自動的に表示します。ディープ・リンクはデフォルトで無効になっています。アプリケーション開発者は、「共有コンポーネント」の「セキュリティ属性」ページのアプリケーションレベルまたはページ・デザイナの個々のページで、ディープ・リンクを有効にできます。

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

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

  • 認証不要の選択APEXはユーザー資格証明をチェックしません。アプリケーションのすべてのページには、すべてのユーザーからアクセスできます。
  • 組込み認証スキームの選択。使用可能な事前構成済の認証スキームに基づいて、認証方式を作成します。選択するスキームによっては、Oracle 10giAS、Oracle Internet Directoryまたは他の外部サービスの対応するコンポーネントを構成する必要もあります。
  • カスタム認証スキームの作成。カスタム認証方式を作成すると、認証インタフェースを完全に制御できます。この方法を実装するには、APEXエンジンが各ページ・リクエストを処理する前に実行するPL/SQLファンクションを指定する必要があります。このファンクションのブール戻り値によって、APEXエンジンが通常どおりにページを処理するか、または失敗ページを表示するかが決まります。