認証は、ユーザーがアプリケーションにアクセスする前に、そのユーザーの本人確認を行うプロセスです。この項では、認証を使用してユーザーのアイデンティティを証明する方法について説明します。
トピック:
認証では、ユーザーにユーザー名とパスワードの指定を要求するか、またはデジタル証明書や保護キーを使用する可能性があります。
アプリケーションがユーザーとどのように対話するかを決定します。すべてのユーザーが同じ権限を持つ場合、そのユーザーはパブリック・ユーザーとみなされます。ただし、アプリケーションが各ユーザーを個別に追跡する必要がある場合は、認証方式を指定する必要があります。
認証は、アプリケーションにアクセスする各ユーザーのアイデンティティの証明を行います。多くの認証プロセスで、ユーザーはなんらかの資格証明(ユーザー名とパスワードなど)を提供する必要があります。これらの資格証明は評価され、合格または不合格のいずれかとなります。資格証明が合格した場合、ユーザーはアプリケーションにアクセスできます。そうでない場合は、アクセスが拒否されます。
ユーザーの本人確認が行われると、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));
表を作成したら、この表にユーザー権限情報を移入して、ページ、タブ、ナビゲーション・バー、ボタン、リージョン、または、その他のコントロールやコンポーネントの表示の制御に使用できます。
関連項目:
「APP_USER」
認証スキームを使用するOracle Application Expressアプリケーションでは、ディープ・リンクがサポートされています。ディープ・リンクは、コンテキスト外(たとえば、電子メールのハイパーリンクまたはワークフロー通知から)のOracle Application Expressページにリンクする機能を指します。コンテキスト外のページにリンクし、そのアプリケーションでユーザー認証が必要な場合、ログイン・ページが表示されます。資格証明の検証後、Application Expressエンジンは元のリンクで参照されていたページを自動的に表示します。
アプリケーションを作成する場合、認証を含めるかどうかを決定する必要があります。次の選択肢があります。
認証不要の選択。Oracle Application Expressはすべてのユーザーの資格証明をチェックしません。アプリケーションのすべてのページには、すべてのユーザーからアクセスできます。
組込み認証スキームの選択。使用可能な事前構成済の認証スキームに基づいて、認証方式を作成します。選択するスキームによっては、Oracle 10giAS、Oracle Internet Directoryまたは他の外部サービスの対応するコンポーネントを構成する必要もあります。
カスタム認証スキームの作成。カスタム認証方式を作成すると、認証インタフェースを完全に制御できます。この方法を実装するには、Application Expressエンジンが各ページ・リクエストを処理する前に実行するPL/SQLファンクションを提供する必要があります。このファンクションのブール戻り値によって、Application Expressエンジンが通常どおりにページを処理するか、または失敗ページを表示するかが決まります。
ギャラリから認証スキームを作成すると、標準動作の認証およびセッション管理を行う事前構成済認証スキームを選択できます。新しい認証スキームを作成すると、そのスキームは自動的に選択したアプリケーションのカレント認証スキームになります。この項では、Oracle Application Expressに付属するすべての事前構成済認証スキームについて説明します。
ヒント:
認証スキームはプラグインをサポートします。詳細は、プラグインの実装を参照してください。
トピック:
この項では、Application Expressアカウント認証スキームを使用するタイミングおよびその構成方法について説明します。
Application Expressアカウントは、Oracle Application Expressのユーザー・リポジトリで作成および管理されるユーザー・アカウントです。この方式を使用すると、これらのアカウントに対してアプリケーションが認証されます。
Application Expressアカウントは、次のような場合に有効です。
ユーザー・アカウント・リポジトリを制御する場合。
ユーザー名およびパスワードに基づいたセキュリティで十分な場合。
シングル・サインオン・フレームワークへの統合が不要な場合。
この方法は特に、ユーザー・グループを新しいアプリケーションで迅速に起動および実行する必要がある場合に適しています。
関連項目:
『Oracle Application Express管理ガイド』の「Application Expressユーザーの管理」
この項では、カスタム認証を使用するタイミングおよびその構成方法について説明します。
認証スキームを最初から作成すると、認証インタフェースを完全に制御できます。これは、次のいずれかに該当する場合に最適な方法です。
データベース認証または他の方式が適切でない。
独自のログイン・フォームおよび関連方式を開発する必要がある。
セッション管理のセキュリティ面を制御する必要がある。
ユーザー・レベルまたはセッション・レベルでアクティビティを記録または監査する必要がある。
セッションのアクティビティ制限または存続期限を施行する必要がある。
Oracle Application Expressページ・プロセスの前に一方向の条件付きリダイレクト・ロジックをプログラムする必要がある。
一般的なセッション管理フレームワークを使用して、アプリケーションをOracle Application Express以外のアプリケーションと統合する必要がある。
アプリケーションが、シームレス(たとえば、複数のアプリケーションID)に動作する複数のアプリケーションで構成されている。
ヒント:
複数のアプリケーションで同じ認証スキームの使用を計画している場合は、カスタム認証プラグインの記述を検討してください。プラグインの実装を参照してください。
Oracle Application Expressは、カスタム認証を実行する際に、次の2つの不適切な状況が発生しないようにします。
あるユーザーが、他のユーザーに属するセッション・ステートに故意にアクセスしようとすること。ただし、ユーザーは任意のアプリケーション・セッションIDをURLに入力できます。
失効したセッション・ステート(多くの場合、同じユーザーに属する以前のセッション・ステート)が不注意にアクセスされること。これは一般的に、アプリケーション・ページへのブックマークを使用したために発生します。
Oracle Application Expressは、カスタム認証ファンクションによって設定されたユーザーIDトークンが、アプリケーション・セッションが最初に作成された際に記録されたユーザーIDと一致するかどうかを確認します。ユーザーがまだ認証されておらず、ユーザーIDが認識されていない場合、アクセスをしているセッション・ステートは、他のユーザーに属していません。これらの確認によって、リクエスト内のセッションIDが使用可能かどうかが判断されます。セッションIDが使用不可能な場合、Application Expressエンジンは適切なセッションIDを使用して、同じページにリダイレクトします。
この項では、データベース・アカウント資格証明認証を使用するタイミングおよびその構成方法について説明します。
データベース・アカウント資格証明は、データベース・スキーマ・アカウントを使用します。この認証スキームでは、データベース・ユーザー(スキーマ)はローカル・データベースに存在している必要があります。この方法を使用する場合、ユーザーの認証にデータベース・アカウントのユーザー名およびパスワードが使用されます。適用可能なアプリケーションの指定したユーザーごとに1つのデータベース・アカウントを持ち、ニーズに対応したデータベース・ツールによるアカウントのメンテナンスを行う場合は、データベース・アカウント資格証明を選択します。
この項では、HTTPヘッダー変数認証を使用するタイミングおよびその構成方法について説明します。
トピック:
HTTPヘッダー変数は、ヘッダー変数を使用したユーザーの識別およびApplication Expressのユーザー・セッションの作成をサポートします。会社で、アプリケーションおよびテクノロジ全体でシングル・サインオンを実現するOracle Access Managerのような集中型Web認証ソリューションを使用する場合は、この認証スキームを使用します。これらのシステムによってユーザー資格証明検証が実行され、REMOTE_USER(デフォルト)のようなHTTPヘッダー変数を使用してOracle Application Expressにユーザー名が渡されます。
この項では、LDAP資格証明認証を使用するタイミングおよびその構成方法について説明します。
ログイン・ページを使用する認証スキームは、Lightweight Directory Access Protocol(LDAP)を使用して、ログイン・ページで送信されるユーザー名およびパスワードを検証するように構成できます。
アプリケーション・ビルダーには、このオプションの構成方法を示すウィザードと編集ページが含まれています。これらのウィザードでは、この構成のために、ご使用のアプリケーションにアクセス可能なLDAPディレクトリがすでに存在していることと、LDAPディレクトリが資格証明の検証のSIMPLE_BIND_S
コールに応答できることを想定しています。LDAP資格証明の認証スキームを作成する場合、SSL、LDAPホスト名、LDAPポート、DN文字列、SSLの使用の有無、完全なDN、および完全なDNを使用しない場合のオプションの検索フィルタが要求され保存されます。オプションの事前処理ファンクションを指定して、APIに渡されるユーザー名の書式設定を調整できます。
この項では、データベース・アクセス記述子(DAD)データベース認証を使用するタイミングおよびその構成方法について説明します。
トピック:
DAD資格証明の検証では、Oracleデータベース・ネイティブ認証およびユーザー・メカニズムを使用し、基本認証スキームを使用してユーザーを認証します。この認証スキームでは、DAD構成に格納された値か、アカウント情報がDAD構成に格納されていない場合はBasic認証要求を使用して取得されるユーザー名のいずれかとして、データベース・アクセス記述子(DAD)からユーザー名が取得されます。
DAD資格証明の検証を使用するには、次の条件を満たす必要があります。
各アプリケーション・ユーザーが、Oracle Databaseにユーザー・アカウントを持っている。
Basic認証用のPL/SQL DADを構成している(アカウント情報なし)。
これによって、アプリケーション・ユーザーは、ブラウザ・セッションごとに1回ユーザー名/パスワードを要求されます。その後、ユーザー・アイデンティティ・トークンがAPP_USER
アイテム内で使用可能になります。
DADデータベース認証は、管理可能な数のユーザーに対して最小限の設定のみが必要な認証方式を実装する場合に役立ちます。これらのユーザーがデータベース内に自己管理されたアカウントを持っており、この認証方式を短期間(たとえば、開発のデモンストレーションまたはプロトタイプ段階の間)のみ使用することが理想です。
この方法の主なデメリットは、特にユーザーが自分のパスワードを管理していないか、またはユーザーのデータベース・アカウントがアプリケーションへの認証を容易化するためのみに存在している場合に、アカウントのメンテナンスが負担となることです。
この項では、公開資格証明を使用するタイミングおよびその構成方法について説明します。
トピック:
公開資格証明を使用すると、ユーザー名を取得する組込みログイン・ページを使用して、自分のアプリケーションがすべてのユーザーからアクセス可能になります。この認証方式は、アプリケーションの開発時に有用です。
この項では、Oracle Application Server Single Sign-Onの検証を使用するタイミングおよびその構成方法について説明します。
Oracle Application Server Single Sign-On資格証明は、Oracle AS Single Sign-On(SSO)Serverに認証を委譲します。この認証スキームを使用するには、サイトは、SSO Serverにパートナ・アプリケーションとして登録されている必要があります。
Oracle Application Expressアプリケーションは、Oracle Application ServerのSingle Sign-On (SSO)インフラストラクチャでパートナ・アプリケーションとして実行できます。Oracle Application Serverのパートナ・アプリケーションの登録手順に従い、アプリケーション(またはApplication Expressエンジン)をパートナ・アプリケーションとして登録し、Oracle 9iAS SSO Software Developer Kit (SDK)をインストールする必要があります。
この方法を選択する場合、ご使用のアプリケーションでは統合されたログイン・ページが使用されません。かわりに、ユーザーが新しいブラウザ・セッションでアプリケーションにアクセスすると、Application ExpressエンジンによってSingle Sign-Onログイン・ページにリダイレクトされます。ユーザーがSSOによって認証されると、SSOコンポーネントはアプリケーションにリダイレクトし、Application Expressエンジンにユーザー・アイデンティティおよびその他の情報を渡します。その後、ユーザーはログオフするか、ブラウザ・セッションを終了するか、またはその他のセッション終了イベントが発生するまでアプリケーションを使用できます。
認証スキームを作成すると、使用可能な認証スキームが認証スキーム・リポジトリに表示されます。
認証スキーム・リポジトリにナビゲートするには、次のステップを実行します。
関連項目:
アプリケーションのカレント認証スキームを表示するには、次のステップを実行します。
Oracle Application Expressでアプリケーションを作成すると、ログイン・ページが作成されます。ページの別名は、LOGIN
です。このページは、認証スキームで無効なセッション・ページとして使用できます。このページは、Oracle Application ExpressのログインAPIをコールするプロセスを使用して、資格証明の検証およびセッションの登録を実行するように構成されています。
事前に構築されたモデル・ページを使用して、すべてのユーザー・インタフェースを調整し、要件に対してロジックを加工して、独自のログイン・ページを構築することもできます。
アプリケーションのログイン・ページを作成するには、次のステップを実行します。