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

事前構成済の認証スキームについて学習します。

ギャラリから認証スキームを作成すると、標準動作の認証およびセッション管理を行う事前構成済認証スキームを選択できます。新しい認証スキームを作成すると、そのスキームは自動的に選択したアプリケーションのカレント認証スキームになります。この項では、Oracle Application Expressに付属するすべての事前構成済認証スキームについて説明します。

ヒント:

認証スキームはプラグインをサポートします。詳細は、プラグインの実装を参照してください。

20.4.3.1 Application Expressアカウント

Application Expressアカウントは、Oracle Application Expressのユーザー・リポジトリで作成および管理されるユーザー・アカウントです。この方式を使用すると、これらのアカウントに対してアプリケーションが認証されます。

20.4.3.1.1 Application Expressアカウントについて

Application Expressのアカウント認証では、データベース・ユーザー(スキーマ)がローカル・データベースに存在している必要があります。この方法を使用する場合、ユーザーの認証にデータベース・アカウントのユーザー名およびパスワードが使用されます。

Application Expressアカウントは、次のような場合に有効です。

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

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

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

Application Expressアカウントは、ユーザー・グループを新しいアプリケーションで迅速に起動および実行する必要がある場合に適した方法です。

本番環境に関する推奨事項

本番環境でのApplication Expressアカウント認証はお薦めしません。アプリケーションへのログインに使用される資格証明は、ワークスペースへのログインに使用される資格証明と同じである場合があります。本番環境では、Oracle Access Manager (OAM )、Oracle Identity Cloud Service (IDCS )、OktaまたはMicrosoft Azure認証などの別のアイデンティティ・プロバイダを使用することをお薦めします。

関連項目:

『Oracle Application Express管理ガイド』の「Application Expressユーザーの管理」

20.4.3.1.2 Application Expressアカウント認証の設定

Application Expressアカウントを設定するには:

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

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

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

20.4.3.2 カスタム認証

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

20.4.3.2.1 カスタム認証について

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

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

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

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

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

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

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

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

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

ヒント:

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

20.4.3.2.2 カスタム認証の設定

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

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

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

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

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

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

関連項目:

ヘルプの表示

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

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

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

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

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

20.4.3.3 データベース・アカウント

データベース・アカウント資格証明認証では、データベース・スキーマ・アカウントを使用してユーザーを認証します。

20.4.3.3.1 データベース・アカウント資格証明について

データベース・アカウント資格証明では、データベース・ユーザー(スキーマ)はローカル・データベースに存在している必要があります。この認証方法では、データベース・アカウントのユーザー名とパスワードを使用してユーザーを認証します。適用可能なアプリケーションの指定したユーザーごとに1つのデータベース・アカウントを持ち、ニーズに対応したデータベース・ツールによるアカウントのメンテナンスを行う場合は、データベース・アカウント資格証明を選択します。

20.4.3.3.2 データベース・アカウント資格証明の設定

データベース・アカウント資格証明を設定するには:

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

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

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

20.4.3.4 HTTPヘッダー変数

Webサーバーによって設定されたHTTPヘッダー変数にユーザー名を格納することによって、ユーザーを外部認証します。

ノート:

開発環境のセキュリティとパフォーマンスを確保するために、この機能はOracle Cloudで実行されているApplication Expressインスタンスでは使用できません。

20.4.3.4.1 HTTPヘッダー変数について

HTTPヘッダー変数は、ヘッダー変数を使用したユーザーの識別およびApplication Expressのユーザー・セッションの作成をサポートします。会社で、アプリケーションおよびテクノロジ全体でシングル・サインオンを実現するOracle Access Managerのような集中型Web認証ソリューションを使用する場合は、HTTPヘッダー変数認証スキームを使用します。これらのシステムによってユーザー資格証明検証が実行され、REMOTE_USER(デフォルト)のようなHTTPヘッダー変数を使用してOracle Application Expressにユーザー名が渡されます。

20.4.3.4.2 HTTPヘッダー変数の設定

HTTPヘッダー変数を設定するには:

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

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

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

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

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

関連項目:

ヘルプの表示

20.4.3.5 LDAPディレクトリ

LDAPサーバーへの認証リクエストによりユーザーとパスワードを認証します。

ノート:

開発環境のセキュリティとパフォーマンスを確保するために、この機能はOracle Cloudで実行されているApplication Expressインスタンスでは使用できません。

20.4.3.5.1 LDAPディレクトリの検証について

ログイン・ページを使用する認証スキームは、Lightweight Directory Access Protocol(LDAP)を使用して、ログイン・ページで送信されるユーザー名およびパスワードを検証するように構成できます。

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

20.4.3.5.2 LDAPディレクトリの検証の設定

LDAPディレクトリを設定するには:

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

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

  4. 「セキュリティ」で、「認証スキーム」を選択します。
  5. 認証スキーム・ページで、「作成」をクリックします。
  6. 「ギャラリからの事前構成済スキームに基づく」を選択し、「次へ」をクリックします。
  7. 「名前」で、次の項目を指定します。
    1. 名前: 他のアプリケーション開発者が認証スキームを参照するための名前を入力します。
    2. スキーム・タイプ: 「LDAPディレクトリ」を選択します。
  8. 「設定」で、次のステップを実行します。
    1. ホスト: LDAPディレクトリ・サーバーのホスト名を入力します。
    2. ポート: LDAPディレクトリ・ホストのポート番号を入力します。デフォルトは389です。
    3. SSLの使用: LDAPディレクトリへのバインドにSSLを使用するかどうかを選択します。認証付きSSLを選択すると、Application Expressインスタンスに対してウォレットを構成する必要があります。
    4. 識別名(DN)文字列: 完全なDNを使用する場合はDBMS_LDAP.SIMPLE_BIND_Sに完全修飾識別名(DN)文字列を構築するために使用されるパターンを、非完全なDNを使用する場合は検索ベースを入力します。%LDAP_USER%をユーザー名のプレースホルダとして使用します。次に例を示します。

      完全なDN:

      cn=%LDAP_USER%,l=amer,dc=yourdomain,dc=com
      

      非完全なDN(検索ベース):

      Non-Exact DN (Search Base)
      
    5. 識別名(DN)の使用: LDAP識別名(DN)文字列が完全か非完全かを選択します。非完全の場合、LDAP識別名(DN)は検索ベースで、検索フィルタを指定する必要があります。
    6. LDAPユーザー名編集ファンクション: ユーザー名をLDAPディレクトリ・エントリまたはLDAPユーザー名に最適な形式に変換するために実行される追加コードを指定できます。バインド変数:USERNAMEには、エンド・ユーザーが指定した名前が含まれます。たとえば、次のコードでは、DN文字列のすべてのピリオド(.)をアンダースコア(_)に置換する関数がコールされます。
      return apex_custom_auth.ldap_dnprep(p_username => :USERNAME);
      
    7. ユーザー名エスケープ: Oracle Application Expressが%LDAP_USER%で特殊文字をエスケープする方法を選択します。この属性の適切な値は、使用するLDAPサーバーおよびLDAPユーザー名編集ファンクションがすでに特殊文字をエスケープしているかどうかによって異なります。

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

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

    ノート:

    SSLモードとして「認証付きSSL」を選択する場合は、Oracle Application Expressのインスタンス設定を使用してウォレットを設定する必要があります。また、LDAPサーバーのルート証明書を信頼できる証明書としてこのウォレットにインポートする必要があります。

関連項目:

20.4.3.6 認証なし(DADを使用)

現在のデータベース・ユーザーを採用します。この方法は、データベース・セッション・ユーザーの設定に基本認証を使用するmod_plsqlデータベース・アクセス記述子(DAD)構成と組み合せて使用できます。

20.4.3.6.1 DAD資格証明の検証について

DAD資格証明の検証では、Oracleデータベース・ネイティブ認証およびユーザー・メカニズムを使用し、基本認証スキームを使用してユーザーを認証します。この認証スキームでは、DAD構成に格納された値か、アカウント情報がDAD構成に格納されていない場合はBasic認証要求を使用して取得されるユーザー名のいずれかとして、データベース・アクセス記述子(DAD)からユーザー名が取得されます。

DAD資格証明の検証を使用するには、次の条件を満たす必要があります。

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

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

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

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

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

20.4.3.6.2 DAD資格証明の検証の設定

DAD資格証明の検証を設定するには:

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

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

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

20.4.3.7 公開資格証明

ユーザー名を取得する組込みログイン・ページを使用して、自分のアプリケーションがすべてのユーザーからアクセス可能になります。

公開資格証明を使用すると、ユーザー名を取得するログイン・ページを使用して、誰でもアプリケーションにアクセスできます。この認証スキームは、アプリケーションの開発時に便利です。

20.4.3.7.1 公開資格証明の設定

公開資格証明を設定するには:

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

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

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

20.4.3.8 Oracle Application Server Single Sign-On Server

Oracle AS Single Sign-On (SSO) Serverに認証を委譲します。この認証スキームを使用するには、サイトは、SSO Serverにパートナ・アプリケーションとして登録されている必要があります。

ノート:

開発環境のセキュリティとパフォーマンスを確保するために、この機能はOracle Cloudで実行されているApplication Expressインスタンスでは使用できません。

20.4.3.8.1 Application Server Single Sign-On 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エンジンにユーザー・アイデンティティおよびその他の情報を渡します。その後、ユーザーはログオフするか、ブラウザ・セッションを終了するか、またはその他のセッション終了イベントが発生するまでアプリケーションを使用できます。

20.4.3.8.2 Oracle Application Server Single Sign-Onの設定

Oracle Application Server Single Sign-Onを設定するには:

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

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

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

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

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

関連項目:

ヘルプの表示

20.4.3.9 ソーシャル・サインイン

ソーシャル・サインインは、OpenID ConnectまたはOAuth2標準をサポートする、Google、Facebookなどのソーシャル・ネットワークによる認証をサポートします。

20.4.3.9.1 ソーシャル・サインインについて

ソーシャル・サインイン認証は、主に次のユースケースに役立ちます。

  • アプリケーションがインターネットに直接接続されており、ソーシャル・ネットワークからの不明な数のユーザーがアプリケーションを使用することが想定されています。

  • 会社が、認証に関してこれらのアイデンティティ・プロバイダのいずれか、Oracle Identity Cloud Service、内部OpenID ConnectまたはOAuth2を標準としています。

    これらのアイデンティティ・プロバイダはユーザー資格証明の検証を実行するため、保護のために認可スキームを使用していないかぎり、プロバイダに登録したユーザーなら誰でもアプリケーションを使用できることに注意してください。

アプリケーションをアイデンティティ・プロバイダに登録する場合、事前定義されたOracle Application ExpressコールバックURLのいずれかの完全なURIを使用する必要があります。たとえば、アプリケーションURIが次のようになっているとします。
https://www.example.com/apex/f?p=100

その後、次のいずれかを登録できます。

https://www.example.com/apex/apex_authentication.callback

または

https://www.example.com/apex/apex_authentication.callback2

ソーシャル・ネットワーク認証プロバイダでは、ユーザーに関する多くの情報が格納されます。有効範囲属性(アイテム・ヘルプを参照)を使用して、この情報を要求するようにソーシャル・ログイン認証スキームを構成できます。認証スキームの認証後プロシージャで、APEX_JSON.GET_%ファンクション・コールを使用して、この情報にアクセスできます。

アプリケーションで複数の認証スキームを使用して、複数のソーシャル・ログイン・プロバイダおよび他のスキームをサポートできます。

関連項目:

認証スキーム属性Switch in Sessionの詳細は、認可を参照してください。

20.4.3.9.2 ソーシャル・サインイン認証の設定

ノート:

ソーシャル・サインイン認証を作成するための前提条件として、認証プロバイダからOAuth2資格証明を要求して、アプリケーションへのリダイレクトをサポートするようにアカウントを構成する必要があります。詳細は、認証プロバイダのドキュメントを参照してください。次のステップでは、この操作が完了していること、およびアプリケーションの共有コンポーネントにOAuth2資格証明を保存していることを前提としています。

ソーシャル・サインイン認証を設定するには:

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

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

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

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

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