20.4.3 事前構成済の認証スキームの理解
事前構成済の認証スキームについて学習します。
ギャラリから認証スキームを作成すると、標準動作の認証およびセッション管理を行う事前構成済認証スキームを選択できます。新しい認証スキームを作成すると、そのスキームは自動的に選択したアプリケーションのカレント認証スキームになります。この項では、Oracle Application Expressに付属するすべての事前構成済認証スキームについて説明します。
ヒント:
認証スキームはプラグインをサポートします。詳細は、プラグインの実装を参照してください。
- Application Expressアカウント
Application Expressアカウントは、Oracle Application Expressのユーザー・リポジトリで作成および管理されるユーザー・アカウントです。この方式を使用すると、これらのアカウントに対してアプリケーションが認証されます。 - カスタム認証
カスタム認証スキームを最初から作成して、認証インタフェースを完全に制御できるようにします。 - データベース・アカウント
データベース・アカウント資格証明認証では、データベース・スキーマ・アカウントを使用してユーザーを認証します。 - HTTPヘッダー変数
Webサーバーによって設定されたHTTPヘッダー変数にユーザー名を格納することによって、ユーザーを外部認証します。 - LDAPディレクトリ
LDAPサーバーへの認証リクエストによりユーザーとパスワードを認証します。 - 認証なし(DADを使用)
現在のデータベース・ユーザーを採用します。この方法は、データベース・セッション・ユーザーの設定に基本認証を使用するmod_plsqlデータベース・アクセス記述子(DAD)構成と組み合せて使用できます。 - 公開資格証明
ユーザー名を取得する組込みログイン・ページを使用して、アプリケーションがすべてのユーザーからアクセス可能になります。 - Oracle Application Server Single Sign-On Server
Oracle AS Single Sign-On (SSO) Serverに認証を委譲します。この認証スキームを使用するには、サイトは、SSO Serverにパートナ・アプリケーションとして登録されている必要があります。 - ソーシャル・サインイン
ソーシャル・サインインは、OpenID Connect
またはOAuth2
標準をサポートする、Google、Facebookなどのソーシャル・ネットワークによる認証をサポートします。
親トピック: 認証によるユーザー・アイデンティティの証明
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ユーザーの管理」
親トピック: Application Expressアカウント
20.4.3.1.2 Application Expressアカウント認証の設定
Application Expressアカウントを設定するには:
親トピック: Application Expressアカウント
20.4.3.2 カスタム認証
カスタム認証スキームを最初から作成して、認証インタフェースを完全に制御できるようにします。
20.4.3.2.1 カスタム認証について
カスタム認証は、次のいずれかが該当する場合にアプリケーションに最適な方法です。
-
データベース認証または他の方式が適切でない。
-
独自のログイン・フォームおよび関連方式を開発する必要がある。
-
セッション管理のセキュリティ面を制御する必要がある。
-
ユーザー・レベルまたはセッション・レベルでアクティビティを記録または監査する必要がある。
-
セッションのアクティビティ制限または存続期限を施行する必要がある。
-
Oracle Application Expressページ・プロセスの前に一方向の条件付きリダイレクト・ロジックをプログラムする必要がある。
-
一般的なセッション管理フレームワークを使用して、アプリケーションをOracle Application Express以外のアプリケーションと統合する必要がある。
-
アプリケーションが、シームレス(たとえば、複数のアプリケーションID)に動作する複数のアプリケーションで構成されている。
ヒント:
複数のアプリケーションで同じ認証スキームの使用を計画している場合は、カスタム認証プラグインの記述を検討してください。プラグインの実装を参照してください。
親トピック: カスタム認証
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.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にユーザー名が渡されます。
親トピック: HTTPヘッダー変数
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に渡されるユーザー名の書式設定を調整できます。
親トピック: LDAPディレクトリ
20.4.3.5.2 LDAPディレクトリの検証の設定
LDAPディレクトリを設定するには:
関連項目:
-
Oracle Application Express管理ガイドのウォレット情報の構成
-
Oracle Databaseセキュリティ・ガイドのOracle Wallet Managerについて
親トピック: 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データベース認証は、管理可能な数のユーザーに対して最小限の設定のみが必要な認証方式を実装する場合に役立ちます。これらのユーザーがデータベース内に自己管理されたアカウントを持っており、この認証方式を短期間(たとえば、開発のデモンストレーションまたはプロトタイプ段階の間)のみ使用することが理想です。
この方法の主なデメリットは、特にユーザーが自分のパスワードを管理していないか、またはユーザーのデータベース・アカウントがアプリケーションへの認証を容易化するためのみに存在している場合に、アカウントのメンテナンスが負担となることです。
親トピック: 認証なし(DADを使用)
20.4.3.7 公開資格証明
ユーザー名を取得する組込みログイン・ページを使用して、自分のアプリケーションがすべてのユーザーからアクセス可能になります。
公開資格証明を使用すると、ユーザー名を取得するログイン・ページを使用して、誰でもアプリケーションにアクセスできます。この認証スキームは、アプリケーションの開発時に便利です。
親トピック: 事前構成済の認証スキームの理解
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.9 ソーシャル・サインイン
ソーシャル・サインインは、OpenID Connect
またはOAuth2
標準をサポートする、Google、Facebookなどのソーシャル・ネットワークによる認証をサポートします。
20.4.3.9.1 ソーシャル・サインインについて
ソーシャル・サインイン認証は、主に次のユースケースに役立ちます。
-
アプリケーションがインターネットに直接接続されており、ソーシャル・ネットワークからの不明な数のユーザーがアプリケーションを使用することが想定されています。
-
会社が、認証に関してこれらのアイデンティティ・プロバイダのいずれか、
Oracle Identity Cloud Service
、内部OpenID Connect
またはOAuth2
を標準としています。これらのアイデンティティ・プロバイダはユーザー資格証明の検証を実行するため、保護のために認可スキームを使用していないかぎり、プロバイダに登録したユーザーなら誰でもアプリケーションを使用できることに注意してください。
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
資格証明を保存していることを前提としています。
ソーシャル・サインイン認証を設定するには:
親トピック: ソーシャル・サインイン